Skip to main content
Wir veröffentlichen regelmäßig Aktualisierungen unserer Dokumentation, und die Übersetzung dieser Seite ist möglicherweise noch nicht abgeschlossen. Aktuelle Informationen findest du in der englischsprachigen Dokumentation.

Diese Version von GitHub Enterprise wurde eingestellt am 2023-03-15. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für bessere Leistung, verbesserte Sicherheit und neue Features aktualisiere auf die neueste Version von GitHub Enterprise. Wende dich an den GitHub Enterprise-Support, um Hilfe zum Upgrade zu erhalten.

Veröffentlichen und Installieren eines Pakets mit GitHub Actions

Du kannst einen Workflow in GitHub Actions so konfigurieren, dass ein Paket aus GitHub Packages automatisch veröffentlicht oder installiert wird.

GitHub Packages ist verfügbar mit GitHub Free, GitHub Pro, GitHub Free für Organisationen, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 oder höher, und GitHub AE. Weitere Informationen zum Upgrade deiner Instanz von GitHub Enterprise Server findest du unter Informationen zu Upgrades auf neue Releases und im Upgrade-Assistent, um den Upgradepfad von deiner aktuellen Releaseversion zu finden.

Informationen zu GitHub Packages with GitHub Actions

GitHub Actions helfen Dir, Deine Workflows für die Softwareentwicklung am gleichen Ort zu automatisieren, an dem Du Code speicherst und an Pull Requests und Issues mitarbeitest. Du kannst einzelne Aufgaben schreiben, Aktionen genannt, und diese kombinieren um einen benutzerdefinierten Workflow zu erstellen. Mit GitHub Actions können Sie End-to-End-Funktionen für die fortlaufende Integration und die fortlaufende Bereitstellung direkt im Repository erstellen. Weitere Informationen findest du unter Informationen zu GitHub Actions.

Du kannst die CI- und CD-Funktionen deines Repositorys erweitern, indem du Pakete als Teil deines Workflows veröffentlichst oder installierst.

Für die Authentifizierung bei Paketregistrierungen in GitHub Enterprise Server empfehlen wir die Verwendung des GitHub-Tokens (GITHUB_TOKEN), das GitHub Enterprise Server automatisch für dein Repository erstellt, wenn du GitHub Actions aktivierst. Die Berechtigungen für dieses Zugriffstoken müssen in der Workflowdatei festgelegt werden, um den Lesezugriff auf den contents-Bereich und Schreibzugriff auf den packages-Bereich zu gewähren. Für Forks erhält GITHUB_TOKEN den Lesezugriff für das übergeordnete Repository. Weitere Informationen findest du unter Automatische Tokenauthentifizierung.

Du kannst auf das GITHUB_TOKEN in deiner Workflowdatei mithilfe des {{secrets.GITHUB_TOKEN}}-Kontexts verweisen. Weitere Informationen findest du unter Automatische Tokenauthentifizierung.

Informationen zu Berechtigungen und zum Paketzugriff

Wenn du GitHub Actions aktivierst, installiert GitHub eine GitHub App im Repository. Das GITHUB_TOKEN-Geheimnis ist ein Zugriffstoken der GitHub-App-Installation. Du kannst das Installationszugriffstoken verwenden, um dich im Namen der auf deinem Repository installierten GitHub-App zu authentifizieren. Die Berechtigungen des Tokens sind auf das Repository beschränkt, in dem sich der Workflow befindet. Weitere Informationen findest du unter Automatische Tokenauthentifizierung.

GitHub Packages ermöglicht es dir, Pakete über das GITHUB_TOKEN zu pushen und pullen, das für einen GitHub Actions-Workflow verfügbar ist.

Veröffentlichen eines Pakets mithilfe einer Aktion

Du kannst GitHub Actions verwenden, um automatisch Pakete als Teil deines CI-Flows (Continuous Integration) zu veröffentlichen. Mit diesem Ansatz für Continuous Deployment (CD) kannst du die Erstellung neuer Paketversionen automatisieren, wenn der Code deinen Qualitätsstandards entspricht. Beispielsweise kannst du einen Workflow erstellen, der CI-Tests jedes Mal ausführt, wenn eine Entwicklerin Code an einen bestimmten Branch pusht. Wenn die Tests bestanden werden, kann der Workflow eine neue Paketversion in GitHub Packages veröffentlichen.

Die Konfigurationsschritte variieren je nach Paketclient. Allgemeine Informationen zum Konfigurieren eines Workflows für GitHub Actions findest du unter Verwenden von Workflows.

Im folgenden Beispiel wird veranschaulicht, wie du GitHub Actions verwenden kannst, um deine App zu erstellen und zu testen und anschließend automatisch ein Docker-Image zu erstellen und es in GitHub Packages zu veröffentlichen.

Erstelle eine neue Workflowdatei in deinem Repository (z. B. .github/workflows/deploy-image.yml), und füge die folgende YAML-Datei hinzu:

YAML
# Dieser Workflow verwendet Aktionen, die nicht von GitHub zertifiziert sind.
# Sie werden von einem Drittanbieter bereitgestellt und unterliegen
# separaten Nutzungsbedingungen, Datenschutzbestimmungen und Support
# Onlinedokumentation.

# GitHub empfiehlt, Aktionen an einen Commit-SHA anzuheften.
# Um eine neuere Version zu erhalten, musst du den SHA aktualisieren.
# Du kannst auch auf ein Tag oder einen Branch verweisen, aber die Aktion kann sich ohne Vorwarnung ändern.

name: Create and publish a Docker image

on:
  push:
    branches: ['release']

jobs:
  run-npm-build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: npm install and build webpack
        run: |
          npm install
          npm run build
      - uses: actions/upload-artifact@v2
        with:
          name: webpack artifacts
          path: public/

  run-npm-test:
    runs-on: ubuntu-latest
    needs: run-npm-build
    strategy:
      matrix:
        os: [ubuntu-latest]
        node-version: [12.x, 14.x]
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}
      - uses: actions/download-artifact@v2
        with:
          name: webpack artifacts
          path: public
      - name: npm install, and test
        run: |
          npm install
          npm test
        env:
          CI: true

  build-and-push-image:
    runs-on: ubuntu-latest
    needs: run-npm-test 
    permissions:
      contents: read
      packages: write 
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Log in to GitHub Docker Registry
        uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
        with:
          registry: docker.pkg.github.com
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: Build and push Docker image
        uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
        with:
          push: true
          tags: |
            docker.pkg.github.com/${{ github.repository }}/octo-image:${{ github.sha }}

Die relevanten Einstellungen werden in der folgenden Tabelle erläutert. Weitere Informationen zu den einzelnen Elementen in einem Workflow findest du unter Workflowsyntax für GitHub Actions.

```yaml on: push: branches: ['release'] ``` Hier wird der Create and publish a Docker image-Workflow konfiguriert, der jedes mal ausgeführt wird, wenn eine Änderung an den Branch release gepusht wird.
run-npm-build:
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v2
    - name: npm install and build webpack
      run: |
        npm install
        npm run build
    - uses: actions/upload-artifact@v2
      with:
        name: webpack artifacts
        path: public/
Dieser Auftrag installiert NPM und verwendet diese Lösung zum Erstellen der App.
run-npm-test:
  runs-on: ubuntu-latest
  needs: run-npm-build
  strategy:
    matrix:
      os: [ubuntu-latest]
      node-version: [12.x, 14.x]
  steps:
    - uses: actions/checkout@v2
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v2
      with:
        node-version: ${{ matrix.node-version }}
    - uses: actions/download-artifact@v2
      with:
        name: webpack artifacts
        path: public
    - name: npm install, and test
      run: |
        npm install
        npm test
      env:
        CI: true
Dieser Auftrag verwendet npm test zum Testen des Codes. Der needs: run-npm-build-Befehl macht diesen Auftrag abhängig vom Auftrag run-npm-build.
```yaml build-and-push-image: runs-on: ubuntu-latest needs: run-npm-test ``` Dieser Auftrag veröffentlicht das Paket. Der needs: run-npm-test-Befehl macht diesen Auftrag abhängig vom Auftrag run-npm-test.
```yaml permissions: contents: read packages: write ``` Legt die Berechtigungen fest, die für das GITHUB_TOKEN für die Aktionen in diesem Auftrag gewährt werden
```yaml - name: Log in to GitHub Docker Registry uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 with: registry: docker.pkg.github.com username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} ``` Erstellt einen neuen Schritt namens Log in to GitHub Docker Registry, der sich mit dem Konto und dem Kennwort anmeldet, das die Pakete veröffentlicht. Nach der Veröffentlichung werden die Pakete dem hier definierten Konto zugeordnet.
```yaml - name: Build and push Docker image ``` Erstellt einen neuen Schritt namens Build and push Docker image. Dieser Schritt wird als Teil des build-and-push-image-Auftrags ausgeführt.
```yaml uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc ``` Verwendet die Docker-Aktion build-push-action, um das Image basierend auf dem Dockerfile deines Repositorys zu erstellen. Wenn der Build erfolgreich ist, wird das Image an GitHub Packages gepusht.
```yaml with: ``` Sendet die erforderlichen Parameter an die build-push-action-Aktion. Diese werden in den nachfolgenden Zeilen definiert.
```yaml push: true ``` Hier wird das Image an die Registrierung gepusht, wenn es erfolgreich erstellt wurde.
```yaml tags: | docker.pkg.github.com/${{ github.repository }}/octo-image:${{ github.sha }} ``` Markiert das Image mit dem SHA des Commits, der den Workflow ausgelöst hat

Dieser neue Workflow wird jedes Mal automatisch ausgeführt, wenn du eine Änderung an einem Branch mit dem Namen release im Repository pushst. Auf der Registerkarte Aktionen kannst du den Fortschritt nachverfolgen.

Ein paar Minuten nach Abschluss des Workflows wird das neue Paket in deinem Repository angezeigt. Weitere Informationen zum Suchen deiner verfügbaren Pakete findest du unter Pakete anzeigen.

Installieren eines Pakets mithilfe einer Aktion

Du kannst Pakete als Teil deines CI-Flows mithilfe von GitHub Actions erstellen. Beispielsweise kannst du einen Workflow konfigurieren. Jedes Mal, wenn eine Entwicklerin Code an einen Pull Request pusht, löst der Workflow die Abhängigkeiten auf, indem er Pakete herunterlädt und installiert, die von GitHub Packages gehostet werden. Anschließend kann der Workflow CI-Tests ausführen, die die Abhängigkeiten erfordern.

Die Installation von Paketen, die von GitHub Packages über GitHub Actions gehostet werden, erfordert eine minimale Konfiguration oder zusätzliche Authentifizierung, wenn du GITHUB_TOKEN verwendest.

Die Konfigurationsschritte variieren je nach Paketclient. Allgemeine Informationen zum Konfigurieren eines Workflows für GitHub Actions findest du unter Verwenden von Workflows.