Diese Version von GitHub Enterprise wurde eingestellt am 2021-09-23. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für eine bessere Leistung, verbesserte Sicherheit und neue Features nimm ein Upgrade auf die neueste Version von GitHub Enterprise vor. Wende Dich an den GitHub Enterprise-Support, um Hilfe beim Upgrade zu erhalten.

Erstellen einer zusammengesetzten Ausführungsschritteaktion

In diesem Handbuch erfahren Sie, wie Sie eine Aktion für zusammengesetzte Ausführungsschritte erstellen.

GitHub Actions ist verfügbar mit GitHub Free, GitHub Pro, GitHub Free für Organisationen, GitHub Team, GitHub Enterprise Cloud, und GitHub AE. GitHub Actions ist nicht verfügbar für private Repositorys, die im Besitz von Konten mit älteren Pro-Repository-Plänen sind.

Note: GitHub Actions was available for GitHub Enterprise Server 2.22 as a limited beta. The beta has ended. GitHub Actions is now generally available in GitHub Enterprise Server 3.0 or later. For more information, see the GitHub Enterprise Server 3.0 release notes.


Note: GitHub-hosted runners are not currently supported on GitHub Enterprise Server. You can see more information about planned future support on the GitHub public roadmap.

Einführung

In this guide, you'll learn about the basic components needed to create and use a packaged composite run steps action. Diese Anleitung fokussiert jene Komponenten, welche zum Paketieren der Aktion benötigt werden. Daher hat der Aktions-Code nur minimale Funktionalität. The action prints "Hello World" and then "Goodbye", or if you provide a custom name, it prints "Hello [who-to-greet]" and then "Goodbye". The action also maps a random number to the random-number output variable, and runs a script named goodbye.sh.

Once you complete this project, you should understand how to build your own composite run steps action and test it in a workflow.

Warning: When creating workflows and actions, you should always consider whether your code might execute untrusted input from possible attackers. Certain contexts should be treated as untrusted input, as an attacker could insert their own malicious content. For more information, see "Understanding the risk of script injections."

Vorrausetzungen

Before you begin, you'll create a GitHub Enterprise Server repository.

  1. Create a new public repository on your GitHub Enterprise Server instance. Sie können einen beliebigen Repository-Namen auswählen oder die folgenden hello-world-composite-run-steps-action Beispiel verwenden. Du kannst diese Dateien hinzufügen, nachdem Dein Projekt per Push an GitHub Enterprise Server übergeben wurde. Weitere Informationen finden Sie unter „Neues Repository erstellen“.

  2. Clone Dein Repository auf Deinen Computer. Weitere Informationen findest Du unter „Ein Repository clonen“.

  3. Gehe in Deinem Terminal zum Verzeichnisse Deines neuen Repositorys.

    cd hello-world-composite-run-steps-action
  4. Erstellen Sie im hello-world-composite-run-steps-action -Repository eine neue Datei mit dem Namen goodbye.sh, und fügen Sie den folgenden Beispielcode hinzu:

    echo "Auf Wiedersehen"
    
  5. From your terminal, make goodbye.sh executable.

    chmod +x goodbye.sh
  6. Checken Sie von Ihrem Terminal aus Ihre goodbye.sh Datei ein.

    git add goodbye.sh
    git commit -m "Add goodbye script"
    git push

Eine Datei für die Metadaten der Aktion erstellen

  1. Erstellen Sie im hello-world-composite-run-steps-action -Repository eine neue Datei mit dem Namen action.yml und fügen Sie den folgenden Beispielcode hinzu. Weitere Informationen zu dieser Syntax finden Sie unter "`` für eine zusammengesetzte Ausführungsschritteausgeführt wird."

    action.yml

    name: 'Hello World'
    description: 'Greet someone'
    inputs:
      who-to-greet:  # id of input
        description: 'Who to greet'
        required: true
        default: 'World'
    outputs:
      random-number:
        description: "Random number"
        value: ${{ steps.random-number-generator.outputs.random-id }}
    runs:
      using: "composite"
      steps:
        - run: echo Hello ${{ inputs.who-to-greet }}.
          shell: bash
        - id: random-number-generator
          run: echo "::set-output name=random-id::$(echo $RANDOM)"
          shell: bash
        - run: ${{ github.action_path }}/goodbye.sh
          shell: bash
    

    Diese Datei definiert die Who-to-Greet- Eingabe, ordnet die zuzufällig generierte Zahl der Zufallszahl Ausgabevariablen zu und führt das goodbye.sh Skript aus. Außerdem wird dem Läufer erläutert, wie die Aktion "Composite-Laufschritte" ausgeführt werden soll.

    Weitere Informationen zum Verwalten von Ausgaben finden Sie unter "Ausgaben für eine zusammengesetzte Ausführungsschritte".

    Weitere Informationen zur Verwendung von github.action_pathfinden Sie unter "github context".

  2. From your terminal, check in your action.yml file.

    git add action.yml
    git commit -m "Add action"
    git push
  3. From your terminal, add a tag. This example uses a tag called v1. Weitere Informationen finden Sie unter „Informationen zu Aktionen“.

    git tag -a -m "Description of this release" v1
    git push --follow-tags

Deine Aktion in einem Workflow testen

The following workflow code uses the completed hello world action that you made in "Creating an action metadata file".

Copy the workflow code into a .github/workflows/main.yml file in another repository, but replace actions/hello-world-composite-run-steps-action@v1 with the repository and tag you created. Darüber hinaus können Sie die Eingabe who-to-greet durch Ihren Namen ersetzen.

.github/workflows/main.yml

on: [push]

jobs:
  hello_world_job:
    runs-on: ubuntu-latest
    name: A job to say hello
    steps:
      - uses: actions/checkout@v2
      - id: foo
        uses: actions/hello-world-composite-run-steps-action@v1
        with:
          who-to-greet: 'Mona the Octocat'
      - run: echo random-number ${{ steps.foo.outputs.random-number }}
        shell: bash

Klicke in Deinem Repository auf die Registerkarte Actions (Aktionen), und wähle die neueste Workflow-Ausführung aus. The output should include: "Hello Mona the Octocat", the result of the "Goodbye" script, and a random number.