Versionsverwaltung: GitHub Actions bringt wiederverwendbare Workflows

Das Feature zum zeitsparenden Wiederverwenden von Workflows schafft den Sprung zur allgemeinen Verfügbarkeit.

In Pocket speichern vorlesen Druckansicht

(Bild: Shutterstock/chanpipat)

Lesezeit: 2 Min.
Von
  • Maika Möbus
Inhaltsverzeichnis

Die Versionsverwaltung GitHub hat verkündet, dass Reusable Workflows in GitHub Actions den Beta-Status verlassen haben. Die wiederverwendbaren Workflows sollen in verschiedenen Szenarien von Vorteil sein, und auch zukünftige Features hat das GitHub-Team bereits auf dem Schirm. So sollen wiederverwendbare Workflows künftig auch auf dem GitHub Enterprise Server Einzug halten.

Reusable Workflows starteten im Oktober 2021 als Beta-Feature. Sie sollen gegenüber dem Duplizieren eines Workflows einfacher zu warten sein und beim Aufsetzen eines neuen Workflows einen Geschwindigkeitsvorteil bieten, da sie auf der Arbeit anderer aufbauen. Unternehmen können sie beispielsweise in Form einer zentral verwalteten Sammlung zur Verfügung stellen.

Damit ein Workflow auf einen Reusable Workflow zugreifen kann, müssen sich entweder beide im gleichen Repository befinden oder der wiederzuverwendende Workflow muss sich in einem öffentlichen Repository befinden – ansonsten muss der neue Workflow Teil des gleichen privaten Repository sein. Zu den weiteren Einschränkungen zählt, dass ein Reusable Workflow keinen anderen Reusable Workflow aufrufen darf.

GitHub schlägt das Feature Reusable Workflows für verschiedene Zwecke vor. So lassen sich damit Setup- oder Login-Schritte in eine einzige GitHub Action bündeln, die sich im GitHub Marketplace veröffentlichen und in verschiedenen Jobs und Workflows einsetzen lässt.

Auch das Einhalten bestimmter Schritte für Produktions-Deployments soll sich mit Reusable Workflows erreichen lassen. In Verbindung mit OpenID Connect – in GitHub Actions im Beta-Status verfügbar – lässt sich etwa der Zugriff auf Credentials auf einen bestimmten Reusable Workflow beschränken, den jedes Teammitglied zum Deployment zwingend ausführen muss.

Sollte ein Unternehmen viele Repositories betreiben, die sich in Aufbau und Deployment grundsätzlich ähneln, lassen sie sich durch einen Reusable Workflow synchron halten. Das zeigt GitHub in einem Vorher-Nachher-Vergleich. Ohne einen wiederverwendbaren Workflow fallen in diesem Beispiel 15 Codezeilen an:

jobs:
  build:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [10.x, 12.x, 14.x, 15.x]

    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
    - run: npm ci
    - run: npm run build --if-present
    - run: npm test

Unter Verwendung eines Reusable Workflow verbleiben die folgenden vier Zeilen:

jobs:
  build:
  uses:
    my-org/actions/.github/workflows/node.js.yml@1

Das CI/CD-System GitHub Actions hat 2019 den Beta-Status verlassen und ist für öffentliche Repositories kostenfrei verfügbar. Im Marketplace stehen derzeit über 10.000 Actions bereit. Zu GitHubs weiteren Plänen zählt, dass Enterprise-Kunden die Möglichkeit zur Nutzung von Actions aus internen Repositories erhalten sollen, ohne sie wie bisher im Marketplace veröffentlichen zu müssen.

Alle weiteren Informationen zu Reusable Workflows bietet ein Blogeintrag.

(mai)