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 repository.
-
Create a new public repository on GitHub. Sie können einen beliebigen Repository-Namen auswählen oder die folgenden
hello-world-composite-run-steps-actionBeispiel verwenden. Du kannst diese Dateien hinzufügen, nachdem Dein Projekt per Push an GitHub übergeben wurde. Weitere Informationen finden Sie unter „Neues Repository erstellen“. -
Clone Dein Repository auf Deinen Computer. Weitere Informationen findest Du unter „Ein Repository clonen“.
-
Gehe in Deinem Terminal zum Verzeichnisse Deines neuen Repositorys.
cd hello-world-composite-run-steps-action -
Erstellen Sie im
hello-world-composite-run-steps-action-Repository eine neue Datei mit dem Namengoodbye.sh, und fügen Sie den folgenden Beispielcode hinzu:echo "Auf Wiedersehen" -
From your terminal, make
goodbye.shexecutable.chmod +x goodbye.sh -
Checken Sie von Ihrem Terminal aus Ihre
goodbye.shDatei ein.git add goodbye.sh git commit -m "Add goodbye script" git push
Eine Datei für die Metadaten der Aktion erstellen
-
Erstellen Sie im
hello-world-composite-run-steps-action-Repository eine neue Datei mit dem Namenaction.ymlund 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: bashDiese Datei definiert die
Who-to-Greet-Eingabe, ordnet die zuzufällig generierte Zahl derZufallszahlAusgabevariablen zu und führt dasgoodbye.shSkript 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 "
Ausgabenfür eine zusammengesetzte Ausführungsschritte".Weitere Informationen zur Verwendung von
github.action_pathfinden Sie unter "github context". -
From your terminal, check in your
action.ymlfile.git add action.yml git commit -m "Add action" git push -
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.