Verwalten von Aktionen und Workflows

Abgeschlossen

Hier erkunden Sie die verschiedenen Tools und Strategien, die Ihnen in GitHub Enterprise Cloud und GitHub Enterprise Server zur Verfügung stehen, um GitHub-Aktionen und -Workflows freizugeben und ihre Verwendung in Ihrem Unternehmen zu verwalten.

Der Inhalt ist gemäß der Ebene strukturiert, auf der die vorgestellten Tools verfügbar sind: Unternehmensebene oder Organisationsebene.

Auf Unternehmensebene

Konfigurieren einer GitHub Actions-Verwendungsrichtlinie

GitHub Actions-Workflows enthalten häufig Aktionen, bei denen es sich um Sätze eigenständiger Befehle handelt, die innerhalb des Workflows ausgeführt werden sollen. Beim Erstellen eines Workflows können Sie eigene Aktionen erstellen, um öffentliche Communityaktionen zu verwenden, die über GitHub Marketplace verfügbar sind, oder darauf zu verweisen. Aus diesem Grund ist es wichtig, eine Verwendungsrichtlinie für Workflows und Aktionen in Ihrem Unternehmen zu konfigurieren, um zu verhindern, dass Benutzer schädliche Aktionen von Drittanbietern verwenden.

In Enterprise Cloud stehen Ihnen mehrere Optionen zur Verfügung, um eine Richtlinie zu konfigurieren, ebenfalls in Enterprise Server, wenn GitHub Connect in Ihren Unternehmenseinstellungen aktiviert ist.

Navigieren Sie zum Konfigurieren einer GitHub Actions-Richtlinie für Ihr Unternehmen zu Ihrem Unternehmenskonto und dann zu Policies > Actions (Richtlinien > Aktionen) in der Randleiste. Die folgenden Optionen sollten angezeigt werden.

Screenshot: Bildschirm „Aktionen“ mit ausgewählten Standardoptionen.

In der Dropdownliste oben mit dem Titel Für alle Organisationen aktivieren können Sie entscheiden, welche Organisationen in Ihrem Unternehmen GitHub Actions verwenden können (alle, einige oder keine), während Sie mit den drei darunter liegenden Optionen die Einschränkungsstufe von GitHub Actions innerhalb dieser Organisationen definieren können.

Wenn Sie nur bestimmte Aktionen zur Verwendung in Ihrem Unternehmen aktivieren möchten, wählen Sie Unternehmens- und Nicht-Unternehmensaktionen sowie wiederverwendbare Workflows zulassen aus und wählen Sie die Option, die Ihrem Anwendungsfall entspricht.

Screenshot: Bildschirm „Aktionen“ mit ausgewählter Option „Ausgewählte Aktionen zulassen“.

Manuelles Synchronisieren öffentlicher Aktionen für Enterprise Server

Die meisten offiziellen von GitHub verfassten Aktionen sind automatisch mit dem Enterprise-Server gebündelt und werden zu einem festgelegten Zeitpunkt aus dem GitHub Marketplace erfasst. Dazu gehören actions/checkout, actions/upload-artifact, actions/download-artifact, actions/labeler und verschiedene actions/setup--Aktionen. Um alle offiziellen Aktionen abzurufen, die in Ihrer Unternehmensinstanz enthalten sind, navigieren Sie zur Aktionsorganisation für Ihre Instanz: https://HOSTNAME/actions..

Wie im Abschnitt Konfigurieren einer Verwendungsrichtlinie für GitHub Actions bereits erwähnt wurde, ist es möglich, Enterprise Server so zu konfigurieren, dass automatisch auf die öffentlichen Aktionen zugegriffen wird, die in GitHub Marketplace verfügbar sind, und eine Verwendungsrichtlinie für sie zu konfigurieren. Wenn Sie jedoch eine strengere Kontrolle über die öffentlichen Aktionen wünschen, die in Ihrem Unternehmen verfügbar gemacht werden sollen, können Sie Aktionen mithilfe des actions-sync-Tools manuell herunterladen und mit Ihrer Unternehmensinstanz synchronisieren.

Auf Organisationsebene

Dokumentieren von Unternehmensstandards

Das Erstellen eines GitHub Actions-Workflows umfasst häufig das Schreiben mehrerer Dateien und das Erstellen mehrerer Repositorys, um den Workflow selbst anzugeben. Das Erstellen umfasst auch die Aktionen, Container und/oder Runner, die im Workflow verwendet werden sollen. Abhängig von der Anzahl der Benutzer in Ihrer Enterprise Cloud- oder Enterprise Server-Instanz kann dies ziemlich schnell unübersichtlich werden, wenn Sie keine Unternehmensstandards zum Erstellen von GitHub Actions-Workflows eingerichtet haben.

Als bewährte Methode wird empfohlen, Folgendes in einem GitHub-Wiki oder als Markdowndatei in einem Repository zu dokumentieren, auf das alle Benutzer innerhalb einer Organisation zugreifen können:

  • Repositorys für Speicher
  • Namenskonventionen für Dateien/Ordner
  • Speicherort freigegebener Komponenten
  • Pläne für die laufende Wartung
  • Richtlinien für Mitwirkende

Erstellen von Workflowvorlagen

Workflowvorlagen sind eine hervorragende Möglichkeit, um sicherzustellen, dass Automatisierung in Ihrem Unternehmen wiederverwendet und verwaltet wird. Sowohl in Enterprise Cloud als auch enterprise Server können Benutzer mit Schreibzugriff auf das GitHub-Repository einer Organisation Workflowvorlagen erstellen, die für die Mitglieder der anderen Organisation mit demselben Schreibzugriff zur Verfügung stehen. Workflowvorlagen können dann verwendet werden, um neue Workflows in den öffentlichen und privaten Repositorys der Organisation zu erstellen.

Das Erstellen einer Workflowvorlage erfolgt in zwei Schritten:

  1. Erstellen Sie eine yml-Workflowdatei.

  2. Erstellen Sie eine JSON-Metadatendatei, die beschreibt, wie die Vorlage benutzern beim Erstellen eines Workflows angezeigt werden soll.

    Hinweis

    Die Metadatendatei muss den gleichen Namen wie die Workflowdatei aufweisen. Anstelle der YML-Erweiterung muss „.properties.json“ angefügt werden. Eine Datei mit dem Namen octo-organization-ci.properties.json enthält beispielsweise die Metadaten für die Workflowdatei mit dem Namen octo-organization-ci.yml.

Beide Dateien müssen in einem öffentlichen GitHub-Repository und in einem Verzeichnis mit dem Namen Workflowvorlagen platziert werden. Sie müssen diese Elemente möglicherweise erstellen, wenn sie noch nicht in Ihrer Organisation vorhanden sind.

Im Folgenden finden Sie ein Beispiel für eine einfache Workflowdatei:

name: Octo Organization CI

on:
  push:
    branches: [ $default-branch ]
  pull_request:
    branches: [ $default-branch ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: echo Hello from Octo Organization

Beachten Sie, dass in der vorherigen Datei der Platzhalter $default-branch verwendet wird. Wenn ein Workflow mit Ihrer Vorlage erstellt wird, wird dieser Platzhalter automatisch durch den Namen des Standardbranchs des Repositorys ersetzt.

Im Folgenden sehen Sie die Metadatendatei, die Sie für die Workflowdatei erstellen würden:

{
    "name": "Octo Organization Workflow",
    "description": "Octo Organization CI workflow template.",
    "iconName": "example-icon",
    "categories": [
        "Go"
    ],
    "filePatterns": [
        "package.json$",
        "^Dockerfile",
        ".*\\.md$"
    ]
}

Metadatendateien verwenden die folgenden Parameter:

Parameter Beschreibung Erforderlich
Name Name der Workflowvorlage, die in der Liste der verfügbaren Vorlagen angezeigt wird. Ja
Beschreibung Beschreibung der Workflowvorlage, die in der Liste der verfügbaren Vorlagen angezeigt wird. Ja
iconName Definiert ein Symbol für den Eintrag des Workflows in der Vorlagenliste. Muss ein SVG-Symbol mit demselben Namen sein und muss im Verzeichnis der Workflowvorlagen gespeichert werden. Beispielsweise wird auf eine SVG-Datei mit dem Namen example-icon.svg als Beispielsymbol verwiesen. Nein
Kategorien Definiert die Sprachkategorie des Workflows. Wenn ein Benutzer die verfügbaren Vorlagen anzeigt, werden die Vorlagen, die derselben Sprache entsprechen, deutlicher hervorgehoben. Nein
filePatterns Ermöglicht die Verwendung der Vorlage, wenn sich im Repository des Benutzers eine Datei im Stammverzeichnis befindet, die einem definierten regulären Ausdruck entspricht. Nein

Nachdem eine Workflowvorlage erstellt wurde, finden Benutzer in Ihrer Organisation diese unter Actions > New workflow > Workflows created by _your_organization_name (Aktionen > Neuer Workflow > Workflows, die von Name_Ihrer_Organisation erstellt wurden).

Workflowvorlagenbeispiel.

Wiederverwendbare Vorlagen für Aktionen und Workflows

GitHub-Aktionen ermöglichen die Workflowautomatisierung, und ein wichtiger Teil der effizienten Verwaltung von Workflows ist die Verwendung wiederverwendbarer Vorlagen. Wiederverwendbare Vorlagen helfen dabei, die Entwicklung in mehreren Repositorys zu standardisieren und zu optimieren, Redundanz zu reduzieren und die Wartung zu verbessern.

Wiederverwendbare Vorlagen in GitHub-Aktionen beziehen sich auf vordefinierte Aktionen und Workflows , auf die in mehreren Projekten verwiesen und verwendet werden kann. Sie sorgen für Konsistenz und Compliance mit unternehmensweiten Standards.

Typen wiederverwendbarer Vorlagen

Vorlagentyp Zweck Beispiel
Wiederverwendbare Workflows Standardisieren Sie CI/CD-Pipelines über Repositorys hinweg. ci-pipeline.yml, deploy-app.yml
Wiederverwendbare Aktionen Kapseln Sie allgemeine Automatisierungslogik. setup-env-action, security-scan-action
Workflowvorlagen Definieren sie wiederverwendbare Auftragsstrukturen. test-job.yml, build-job.yml

Wiederverwendbare Workflows

Ein wiederverwendbarer Workflow ist ein Workflow, der in einem separaten Repository definiert ist, auf den in mehreren Projekten verwiesen werden kann. Auf diese Weise können Organisationen ihre CI/CD-Logik zentralisieren .

Struktur eines wiederverwendbaren Workflows

Ein wiederverwendbarer Workflow wird in .github/workflows/ gespeichert und verwendet den workflow_call Trigger.

Beispiel: Standardisierter CI-Workflow (ci-pipeline.yml)

name: CI Pipeline
on:
  workflow_call:
    inputs:
      node-version:
        required: true
        type: string
    secrets:
      npm-token:
        required: true
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Node.js
        uses: actions/setup-node@v3
        with:
          node-version: ${{ inputs.node-version }}
          registry-url: 'https://npm.pkg.github.com/'
      - name: Install Dependencies
        run: npm install
      - name: Run Tests
        run: npm test

Verwenden eines wiederverwendbaren Workflows in einem anderen Repository

Nach der Definition kann der wiederverwendbare Workflow in jedem Repository über das uses: Schlüsselwort verwendet werden.

Beispiel: Aufrufen des wiederverwendbaren Workflows

name: Reusable CI Pipeline
on: push
jobs:
  test:
    uses: org/reusable-workflows/.github/workflows/ci-pipeline.yml@v1
    with:
      node-version: '16'
    secrets:
      npm-token: ${{ secrets.NPM_TOKEN }}

Vorteile der Verwendung eines wiederverwendbaren Workflows

  • Stellt sicher, dass alle Repositorys derselben CI/CD-Struktur entsprechen.
  • Reduziert Redundanz und Wartungsaufwand.
  • Ermöglicht zentralisierte Updates , ohne jedes Repository zu ändern.

Wiederverwendbare Aktionen

Eine GitHub-Aktion ist eine modulare wiederverwendbare Einheit, die bestimmte Automatisierungsaufgaben ausführt. Organisationen erstellen häufig benutzerdefinierte Aktionen, um häufig verwendete Logik zu kapseln.

Struktur einer wiederverwendbaren Aktion

Eine wiederverwendbare Aktion wird in einem Aktions-Repository mit einer action.yml Datei definiert.

Beispiel: Aktion „Benutzerdefinierte Setupumgebung“

name: "Setup Environment"
description: "Sets up Node.js and installs dependencies"
inputs:
  node-version:
    description: "Node.js version"
    required: true
  registry-url:
    description: "NPM Registry URL"
    required: false
    default: "https://registry.npmjs.org/"
runs:
  using: "node16"
  main: "index.js"

Verwenden einer wiederverwendbaren Aktion in einem Workflow

Anstatt die Setupschritte in jedem Workflow zu wiederholen, verwenden wir unsere benutzerdefinierte Aktion:

name: Build & Test
on: push
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Environment
        uses: org/actions/setup-env@v1
        with:
          node-version: '16'

Vorteile:

  • Reduziert die Duplizierung der Setuplogik über Repositorys hinweg.
  • Vereinfacht Workflowdateien, sodass sie besser lesbar sind.
  • Zentralisiert Updates – Korrekturen oder Verbesserungen an einem zentralen Ort spiegeln sich in allen Workflows wider.

Workflowvorlagen

Wie bereits erwähnt, helfen Workflowvorlagen bei der Standardisierung der Automatisierung in Ihrer Organisation, indem vordefinierte Strukturen für allgemeine Aufgaben bereitgestellt werden. Diese Vorlagen sind ein wichtiger Bestandteil der umfassenderen Kategorie wiederverwendbarer Workflows.

Im vorherigen Abschnitt "Erstellen von Workflowvorlagen" haben wir beschrieben, wie Sie diese Vorlagen aus einer yml Datei und einer entsprechenden .properties.json Metadatendatei erstellen.

Um das Konzept weiter zu verbinden: Workflowvorlagen sind eine Form von wiederverwendbaren Workflows. Wenn Sie sie in einem öffentlichen .github Repository unter dem workflow-templates/ Verzeichnis erstellen und speichern, können andere Organisationsmitglieder konsistente Workflows für ihre Repositorys erstellen, ohne sie von Grund auf neu definieren zu müssen.

Durch die Nutzung von Workflowvorlagen können Unternehmen:

  • Erzwingen Sie bewährte Methoden über alle Repositorys hinweg.
  • Beschleunigen Sie das Onboarding und die Einrichtung für neue Projekte.
  • Konsistenz in CI/CD-Prozessen beibehalten.