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.
- For more information about upgrading to GitHub Enterprise Server 3.0 or later, see "Upgrading GitHub Enterprise Server."
- For more information about configuring GitHub Actions after you upgrade, see the documentation for GitHub Enterprise Server 3.0.
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.
Informationen zu Workflow-Artefakten
Artefakte erlauben es dir, Daten nach dem Job-Abschluss abzuspeichern und diese Daten an einen anderen Job im selben Workflow weiterzugeben. Ein Artefakt ist eine Datei oder eine Dateisammlung, die während einer Workflow-Ausführung erstellt wird. Zum Beispiel kannst Du Artefakte verwenden, um Deine Build- und Testausgabe zu speichern, nachdem ein Workflow-Lauf beendet ist.
GitHub Enterprise Server stores full build logs and artifacts for 90 days. The retention period for a pull request restarts each time someone pushes a new commit to the pull request.
Dies sind einige der gängigen Artefakte, die du hochladen kannst:
- Protokolldateien und Coredumps
- Testergebnisse, Fehler und Screenshots
- Binäre oder komprimierte Dateien
- Ergebnisse zur Stresstest-Leistungsausgabe und Codeabdeckung
Artefakte verfallen automatisch nach 90 Tagen, aber du kannst jederzeit den verwendeten Speicher auf GitHub Actions wieder verfügbar machen, indem du Artefakte löschst, bevor sie auf GitHub Enterprise Server ablaufen.
Artefakte werden während eines Workflow-Laufs hochgeladen und Du kannst den Namen und die Größe eines Artefakts in der Benutzeroberfläche anzeigen. Wenn ein Artefakt mit der GitHub Enterprise Server-Oberfläche heruntergeladen wird, werden alle Dateien, die als Teil des Artefakts einzeln hochgeladen wurden, zusammen in eine einzige Datei gezippt. Die Abrechnung erfolgt anhand der Größe des hochgeladenen Artefakts und nicht der Größe der Zip-Datei erfolgt.
GitHub Enterprise Server bietet zwei Aktionen, über die Sie Build-Artefakte hoch- und herunterladen können. For more information, see the actions/upload-artifact
and download-artifact
actions on your GitHub Enterprise Server instance.
Daten zwischen Aufträgen freigeben:
- Dateien hochladen: Gib der hochgeladenen Datei einen Namen und lade die Daten hoch, bevor der Job endet.
- Dateien herunterladen: Du kannst nur Artefakte herunterladen, die während des gleichen Workflow-Laufs hochgeladen wurden. Wenn Du eine Datei herunterlädst, kannst Du sie mit Namen referenzieren.
Die Steps („Schritte“) eines Jobs teilen sich die selbe Umgebung auf der Runner-Maschine, laufen aber in ihren eigenen individuellen Prozessen. Mithilfe von Ein- und Ausgaben können Sie Daten zwischen den Schritten in einem Auftrag weitergeben. Weitere Informationen zu Ein- und Ausgaben findest Du unter „Metadatensyntax für GitHub Actions“.
Build- und Testartefakte hochladen
Du kannst einen Workflow für kontinuierliche Integration (CI) erstellen, um Deinen Code zu bauen und zu testen. For more information about using GitHub Actions to perform CI, see "About continuous integration."
Durch die Ergebnisse der Erstellung und des Tests Deines Codes werden oft zum Debuggen von Testfehlern einsetzbare Dateien und bereitstellbarer Produktionscode erstellt. Du kannst einen Workflow konfigurieren, um den per Push-Vorgang an Dein Repository übertragenen Code zu erstellen und zu testen und um einen erfolgreichen oder fehlerhaften Status zu melden. Du kannst die Build- und Testausgabe hochladen, um sie für Bereitstellungen, zum Debuggen fehlerhafter Tests oder von Abstürzen und zum Anzeigen der Testsuite-Abdeckung zu verwenden.
Du kannst die Aktion upload-artifact
verwenden um Artefakte hochzuladen. Beim Hochladen eines Artefakts können Sie eine einzelne Datei oder ein Verzeichnis oder mehrere Dateien oder Verzeichnisse angeben. Sie können auch bestimmte Dateien oder Verzeichnisse ausschließen und Platzhaltermuster verwenden. Es wird empfohlen, einen Namen für ein Artefakt bereitzustellen, aber wenn kein Name angegeben wird, wird Artefakt
als Standardname verwendet. For more information on syntax, see the actions/upload-artifact
action on your GitHub Enterprise Server instance.
Beispiel
Zum Beispiel kann Dein Projektarchiv oder eine Webanwendung SASS- und TypeScript-Dateien enthalten, die Du in CSS und JavaScript konvertieren musst. Falls Dein Build-Konfiguration die kompilierten Dateien im Verzeichnis dist
ausgibt, würdest Du die im Verzeichnis dist
enthaltenen Dateien auf Deinem Webanwendungsserver bereitstellen, sofern alle Tests erfolgreich abgeschlossen werden.
|-- hello-world (repository)
| └── dist
| └── tests
| └── src
| └── sass/app.scss
| └── app.ts
| └── output
| └── test
|
In diesem Beispiel wird gezeigt, wie Sie einen Workflow für ein Node.js-Projekt erstellen, das den Code im src-Verzeichnis erstellt
und die Tests im tests
-Verzeichnis ausführt. Wenn npm test
ausgeführt wird, wird im Verzeichnis output/test/
ein Bericht zur Codeabdeckung mit dem Namen code-coverage.html
erstellt und gespeichert.
Der Workflow lädt die Produktionsartefakte in das dist
Verzeichnis, schließt jedoch alle Markdowndateien aus. Es lädt auch die code-coverage.html
Bericht als ein weiteres Artefakt.
Name: Node CI
on: [push]
jobs:
build_and_test:
läuft auf: ubuntu-latest
schritte:
- name: Checkout repository
verwendet: actions/checkout@v2
- name: npm install, build, and test
run: |
npm installieren sie
npm run build --if-present
npm test
- name: Archiv production artifacts
uses: actions/upload-artifact@v2
with:
name: dist-without-markdown
path: |
dist
!dist/**/*md
- Name: Archivcodeabdeckungsergebnisse
verwendet: Aktionen/Upload-artifact@v2
mit:
Name: code-coverage-report
pfad: output/test/code-coverage.html
Artefakte herunterladen oder löschen
During a workflow run, you can use the download-artifact
action to download artifacts that were previously uploaded in the same workflow run.
After a workflow run has been completed, you can download or delete artifacts on GitHub or using the REST API. For more information, see "Downloading workflow artifacts," "Removing workflow artifacts," and the "Artifacts REST API."
Herunterladen von Artefakten während einer Workflowausführung
The actions/download-artifact
action can be used to download previously uploaded artifacts during a workflow run.
Hinweis: Sie können nur Artefakte in einem Workflow herunterladen, die während desselben Workflowlaufs hochgeladen wurden.
Geben Sie den Namen eines Artefakts an, um ein einzelnes Artefakt herunterzuladen. Wenn Sie ein Artefakt hochgeladen haben, ohne einen Namen anzugeben, lautet der Standardname Artefakt
.
- Name: Laden Sie ein einzelnes Artefakt
verwendet: Aktionen/Download-artifact@v2
mit:
Name: my-artifact
Sie können auch alle Artefakte in einem Workflow herunterladen, der ausgeführt wird, indem Sie keinen Namen angeben. Dies kann nützlich sein, wenn Sie mit vielen Artefakten arbeiten.
- Name: Laden Sie alle Workflow-Ausführungsartefakte
verwendet: Aktionen/Download-artifact@v2
Wenn Sie alle Artefakte einer Workflowausführung herunterladen, wird ein Verzeichnis für jedes Artefakt mit seinem Namen erstellt.
For more information on syntax, see the actions/download-artifact
action on your GitHub Enterprise Server instance.
Daten zwischen Aufträgen in einem Workflow weitergeben
Du kannst die Aktionen upload-artifact
und download-artifact
verwenden, um innerhalb eines Workflows Daten zwischen Jobs auszutauschen. In diesem Beispiel-Workflow wird veranschaulicht, wie Daten zwischen Aufträgen im selben Workflow weitergegeben werden. For more information, see the actions/upload-artifact
and download-artifact
actions on your GitHub Enterprise Server instance.
Von den Artefakten eines vorherigen Auftrags abhängige Aufträge müssen auf den erfolgreichen Abschluss des abhängigen Auftrags warten. Bei diesem Workflow kommt das Stichwort needs
zum Einsatz, um sicherzustellen, dass job_1
, job_2
und job_3
sequenziell ausgeführt werden. Beispielsweise schreibt job_2
vor, dass job_1
die Syntax needs: job_1
verwendet.
Auftrag 1 führt die folgenden Schritte durch:
- Führt eine mathematische Berechnung aus und speichert das Ergebnis in einer Textdatei namens
math-homework.txt
. - Uses the
upload-artifact
action to upload themath-homework.txt
file with the artifact namehomework
.
Auftrag 2 verwendet das Ergebnis des vorherigen Auftrags:
- Lädt das im vorherigen Auftrag hochgeladene
homework
-Artefakt herunter. Die Aktiondownload-artifact
lädt die Artefakte standardmäßig in das Verzeichnis der Arbeitsoberfläche, in dem der Schritt ausgeführt wird. Du kannst den Eingabeparameterpath
verwenden, um ein anderes Download-Verzeichnis anzugeben. - Reads the value in the
math-homework.txt
file, performs a math calculation, and saves the result tomath-homework.txt
again, overwriting its contents. - Lädt die Datei
math-homework.txt
hoch. This upload overwrites the previously uploaded artifact because they share the same name.
Auftrag 3 zeigt das im vorherigen Auftrag hochgeladene Ergebnis an:
- Lädt das
homework
-Artefakt herunter. - Gibt das Ergebnis der mathematischen Gleichung im Protokoll aus.
Die vollständige, in diesem Workflow-Beispiel durchgeführte mathematische Operation lautet (3 + 7) x 9 = 90
.
name: Daten zwischen Jobs
teilen: [push]
Jobs:
job_1:
Name: Hinzufügen von 3 und 7
-Runs-on: ubuntu-latest
Schritte:
- shell: bash
run: |
expr 3 + 7 > math-homework.txt
- Name: Math-Ergebnis für Job 1
verwendet: Aktionen/Upload-artifact@v2
mit:
Name: Hausaufgaben
Pfad: math-homework.txt
job_2:
Name: Multiplizieren mit 9
benötigt: job_1
-Run-on: Windows-neueste
Schritte:
- Name: Download Mathe-Ergebnis für Job 1
verwendet: Aktionen
artifact@v2
/
value='cat math-homework.txt'
expr $value '* 9 > math-homework.txt
- Name: Math-Ergebnis für Job 2
verwendet: aktionen/upload-artifact@v2
mit:
Name: Hausaufgaben
Pfad: math-homework.txt
job_3:
Name: Anzeigeergebnisse
Bedürfnisse: job_2
-Auslauf: macOS-neueste
Schritte:
- Name: Mathematisches Ergebnis für Job 2
verwendet: Aktionen/Download-artifact@v2
mit:
Name: Hausaufgaben
- Name: Drucken sie das Endergebnis
Shell: bash
run: |
value='cat math-homework.txt'
echo Das Ergebnis ist $value
The workflow run will archive any artifacts that it generated. For more information on downloading archived artifacts, see "Downloading workflow artifacts."