Zum Inhalt springen

Workflow aufteilen

Zuletzt aktualisiert am

Obwohl Actions keine nativen Umgebungs-Schutzregeln (Environment Protection Rules) bietet, um einen laufenden Workflow für eine Freigabe über die Benutzeroberfläche anzuhalten, ist das Aufteilen Ihrer CI/CD-Pipeline in separate Workflows mittels des workflow_dispatch-Events der effektivste und effizienteste Workaround.

Schritt 1: Der automatisierte Build- und Test-Workflow

Abschnitt betitelt „Schritt 1: Der automatisierte Build- und Test-Workflow“

Erstellen Sie Ihren primären Workflow, der automatisch bei jedem Push oder Pull Request ausgeführt wird. Dieser Workflow übernimmt alle Schritte bis zum Zeitpunkt des Deployments.

name: 1. Build and Test
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Tests ausführen
run: echo "Code wird getestet..."
- name: Artefakt erstellen
run: echo "Artefakt wird erstellt..."
# Laden Sie hier Artefakte hoch, damit der Deployment-Workflow sie herunterladen kann

Erstellen Sie einen zweiten Workflow, der ausschließlich durch workflow_dispatch ausgelöst wird. Dadurch wird eine Schaltfläche „Workflow ausführen“ in der Forgejo-Benutzeroberfläche generiert, die als Ihr manuelles Tor für die Freigabe (Approval Gate) dient.

name: 2. Manual Production Deploy
on:
workflow_dispatch:
inputs:
version:
description: "Zu deployende Version oder Branch"
required: true
default: "main"
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.version }}
- name: Deployment in die Produktionsumgebung
run: echo "Version ${{ github.event.inputs.version }} wird bereitgestellt..."
  1. Ein Entwickler pusht Code, was denBuild and Test-Workflow automatisch triggert.
  2. Das Team reviewt die Workflow-Ergebnisse und Test-Logs. Der Runner erledigt seinen Job, meldet Erfolg und fährt herunter.
  3. Wenn das Release approved wird, navigiert ein authorisiertes Teammitglied zum Forgejo Actions-Tab und wählt den Manual Production Deploy-Workflow. Es bestätigt die Ausführung mit einem Klick auf Workflow ausführen.