Verwalten von Aktionen und Workflows
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.
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.
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:
Erstellen Sie eine yml-Workflowdatei.
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).
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.