Starten von GitHub Actions Umgebungsvariablen und Secrets

Wenn Sie neu bei den Umgebungsvariablen von GitHub Actions sind, haben Sie möglicherweise noch nicht gelernt, wie Sie sie speichern können. Aber ist es möglich? Ja!

In diesem Tutorial erfahren Sie verschiedene Möglichkeiten, wie Sie Ihre Umgebungsvariablen von GitHub Actions speichern können sowie Secrets, die Sie bei der Arbeit mit GitHub Actions verwenden können, wenn Sie sie benötigen.

Bereit? Lesen Sie weiter, um loszulegen!

Voraussetzungen

In diesem Tutorial wird eine praktische Demonstration durchgeführt, für die jedes Betriebssystem mit installiertem Git geeignet ist. Im Tutorial wird das Ubuntu-Betriebssystem verwendet. Darüber hinaus ist grundlegendes Wissen über Git-Operationen erforderlich, um Code in ein Repository für Umgebungsvariablen von GitHub Actions zu übertragen.

Einstellungen für Umgebungsvariablen von GitHub Actions

Wenn Sie Prozesse mit einer GitHub Actions-Workflow automatisieren, kann es erforderlich sein, Umgebungsvariablen an Ihre Workflows anzuhängen. Wie? Sie müssen zuerst benutzerdefinierte Umgebungsvariablen in Ihrem Workflow erstellen und angeben, indem Sie das Schlüsselwort env verwenden.

1. Erstellen Sie ein Verzeichnis mit dem Namen .github/workflows, in dem Sie Ihre Workflow-Datei speichern.

2. Als nächstes erstellen Sie eine Datei mit Ihrem bevorzugten Namen im Verzeichnis .github/workflows. Aber für dieses Beispiel ist die Datei main.yml benannt. Kopieren Sie den untenstehenden Code in die Datei main.yml.

Der folgende Code setzt und zeigt die Umgebungsvariable API_KEY an, wenn der Code den Workflow auslöst.

name: env_tutorial
## Löst den Workflow aus, wenn ein Push erfolgt, oder 
## ein Pull Request im Hauptzweig erfolgt
on: [pull_request, push] 

env:
  ## Setzt die Umgebungsvariable
  API_KEY: XXXXXXXXXXXX    

jobs:
  job1:
    ## Der Typ des Runners, auf dem der Job ausgeführt wird, 
    ## hier wird er auf dem neuesten Ubuntu ausgeführt
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        ## Referenziere deine Umgebungsvariablen
        run: echo "The API key is:${{env.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Eine andere Möglichkeit, deine Umgebungsvariablen zu referenzieren
        run: echo "The API key is:$API_KEY"

3. Committen und pushen Sie den Code in Ihr GitHub-Repository.

git add .
git commit -m "update"
git push
Pushing updates to the GitHub Actions environment variables repository

4. Öffnen Sie nun Ihren Webbrowser und navigieren Sie zu Ihrem Projekt auf GitHub. Klicken Sie auf den Tab Actions, dann auf Ihren aktuellen Commit.

Sie werden etwas Ähnliches wie das folgende Bild sehen, das zeigt, dass GitHub den Workflow ausgeführt hat.

GitHub actions Environment variables for repository

5. Klicken Sie abschließend entweder auf job1 oder job2, und Sie werden feststellen, dass Sie erfolgreich die Umgebungsvariable referenziert haben, die Sie initialisiert haben.

Viewing Referenced Environment Variable (job1)
Viewing Referenced Environment Variable (job2)

Definieren einer Umgebungsvariable für einen Job

Jetzt, da Sie die Umgebungsvariable in der gesamten Arbeitsablaufdatei initialisiert haben, kann jeder Job die Umgebungsvariable referenzieren. Aber vielleicht möchten Sie nur, dass ein Job die Umgebungsvariable referenziert. Wenn ja, platzieren Sie das Schlüsselwort env im Job selbst.

1. Ersetzen Sie den Code in Ihrer Datei main.yml durch den folgenden Code.

Der untenstehende Code zeigt, dass, wenn Sie die Umgebungsvariable in einem bestimmten Job platzieren, andere Jobs nicht auf die Umgebungsvariable verweisen können.

name: env_tutorial
## Triggers the workflow on when there is a push, or 
## pull request on the main branch
on: [pull_request, push] 

jobs:
  job1:
    ## The type of runner that the job will run on
    runs-on: ubuntu-latest 
    env:
      ## Umgebungsvariable
      API_KEY: XXXXXXXXXXXX    
    steps:
      - name: step 1
        ## Referenzieren Sie Ihre Umgebungsvariablen
        run: echo "The API key is:${{env.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Eine andere Möglichkeit, Ihre Umgebungsvariablen zu referenzieren
        run: echo "The API key is:$API_KEY"  

2. Bestätigen Sie Ihre Änderungen und pushen Sie Jobs von Ihrem Code in die GitHub Actions-Umgebungsvariablen, wie Sie es im vorherigen Abschnitt getan haben.

3. Navigieren Sie abschließend zu Ihrem Projekt auf GitHub und klicken Sie dann sowohl auf job1 als auch auf job2, um ihren Vergleich zu sehen:

  • job1 – Sie werden feststellen, dass Sie die Umgebungsvariable perfekt referenziert haben.
  • job2 – Der API-Schlüssel ist leer.
Viewing Referenced Environment Variable (job1)
Viewing Referenced Environment Variable (job2)

Definition einer Umgebungsvariable für einen Schritt

Jetzt, da Sie gelernt haben, wie Sie Umgebungsvariablen innerhalb eines Jobs angeben können, fragen Sie sich vielleicht, wie Sie dasselbe mit den Schritten tun können.

Für die Schritte in einem Job geben Sie die Umgebungsvariable innerhalb des Schritts an, wie Sie es für den Job getan haben.

1. Ersetzen Sie den Code, den Sie in Ihrer main.yml-Datei haben, durch den folgenden Code.

Im folgenden Code geben Sie die Umgebungsvariable in Schritt 1 an, aber nicht in Schritt 2, und Sie werden die Auswirkung in den folgenden Schritten sehen.

name: env_tutorial
## Triggers the workflow on when there is a push, or 
## pull request on the main branch
on: [pull_request, push] 

jobs:
  job1:
    ## The type of runner that the job will run on
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        env:
          ## Umgebungsvariable für Schritt 1
          API_KEY: XXXXXXXXXXXX    
        ## Referenzieren Sie Ihre Umgebungsvariablen
        run: echo "The API key is:${{env.API_KEY}}"   
      - name: step 2
        ## Referenzieren Sie Ihre Umgebungsvariablen
        run: echo "The API key is:${{env.API_KEY}}"   

2. Jetzt die Änderungen übernehmen und den Code auf GitHub hochladen.

3. Navigieren Sie schließlich zu Ihrem Projekt auf GitHub Actions-Umgebungsvariablen und klicken Sie auf job1.

Auch wenn Sie die beiden API-Schlüssel im selben Job (job1) in beiden Schritten referenzieren, konnte Schritt 2 den API-Schlüssel (leer) nicht bewerten, wie unten dargestellt. Warum? Weil Sie die Umgebungsvariable nicht innerhalb von Schritt 2 in Ihrem Code angegeben haben.

Setting environment variables for steps

Verwalten von Umgebungsvariablen über GitHub Actions-Umgebungsvariablen und Secrets

Anstatt sie fest zu codieren, möchten Sie Ihre Umgebungsvariable möglicherweise sicher speichern, und GitHub-Secrets können genau das tun. GitHub Actions-Umgebungsvariablen verschlüsseln die Werte, die Sie in Secrets einfügen, sodass sie mit bloßem Auge weder sichtbar noch lesbar sind.

Das mit dieser Methode erstellte Geheimnis ist für den gesamten Workflow, Jobs und Schritte zugänglich; es gibt keine Einschränkungen.

Um Ihre Umgebungsvariable in GitHub Secrets zu speichern:

1. Zuerst laden Sie Ihren Code wie in den vorherigen Abschnitten auf GitHub hoch.

2. Gehen Sie als nächstes zu Ihrem Projekt auf GitHub und klicken Sie auf den Einstellungen-Tab.

Klicken Sie auf Secrets im Tab unten, um ein Geheimnis hinzuzufügen.

Storing environment variables in Secrets

3. Klicken Sie als Nächstes auf das Neues Repository-Geheimnis, und Sie sehen ein Formular, um Details zum hinzuzufügenden Geheimnis einzugeben.

Creating new repository secret

4. Füllen Sie das Formular entsprechend aus (Name und Wert) und klicken Sie auf die Schaltfläche Geheimnis hinzufügen, um es zu übermitteln. Jetzt ist der API_KEY in GitHub Secrets gespeichert. Auf diese Weise setzt GitHub Umgebungsvariablen sicher als Secrets, auf die Sie bei der Arbeit mit GitHub Actions verweisen können.

Filling name and value of the new secret

5. Bearbeite deine Datei main.yml und ersetze das Schlüsselwort env durch secrets.

Unten siehst du, dass du den API-Schlüssel in diesem Format ${{secrets.API_KEY}} referenzierst, anstatt den API-Schlüssel selbst fest zu codieren.

name: env_tutorial
## Löst den Workflow aus, wenn ein Push erfolgt, oder 
## ein Pull Request im Hauptzweig stattfindet
on: [pull_request, push] 

jobs:
  job1:
    ## Der Typ des Runners, auf dem der Job ausgeführt wird
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        ## Referenziere deine Umgebungsvariablen
        run: echo "The API key is:${{secrets.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Referenziere deine Umgebungsvariablen
        run: echo "The API key is:${{secrets.API_KEY}}"  

6. Committe und pushe schließlich den Code auf GitHub und navigiere zu deinem Projekt in der GitHub Actions-Umgebung. Beziehe dich auf den ersten Abschnitt.

Du wirst etwas Ähnliches wie das untenstehende Bild sehen, aber du kannst den tatsächlichen API_key nicht sehen, da GitHub die Werte, die du in Secrets einfügst, verschlüsselt.

Displaying API key from GitHub Actions environment variables secrets

Referenzierung der Standard-GitHub-Umgebungsvariablen

Es gibt ein paar Standard-Umgebungsvariablen, die von GitHub bereitgestellt werden, die du verwenden kannst, um auf Dateisysteme im Repository zuzugreifen, anstatt Pfade fest zu codieren. Standard-GitHub-Umgebungsvariablen ermöglichen es dir, dynamischer auf dir von GitHub gegebenen Umgebungsvariablen zu verweisen.

Einige der Pfade, die du mit den Standard-Umgebungsvariablen erhalten kannst, sind wie folgt:

  • GITHUB_JOB – Bietet die job_id des aktuellen Jobs.
  • GITHUB_ACTION – Bietet die ID der aktuellen Aktion.
  • GITHUB_ACTION_PATH – Bietet den Pfad, in dem sich Ihre Aktion befindet.
  • GITHUB_ACTOR – Bietet den Namen der Person oder App, die den Workflow initiiert hat, wie Ihren GitHub-Benutzernamen.
  • GITHUB_RUN_ID – Bietet die eindeutige Nummer des Befehls run.

Ersetzen Sie den Inhalt Ihrer main.yml Datei durch den untenstehenden Code. Der untenstehende Code zeigt die Standardumgebungsvariable, die im Code angegeben ist.

name: env_tutorial
## Triggers the workflow on when there is a push or 
## pull request on the main branch
on: [pull_request, push] 

jobs:
  job1:
    ## The type of runner that the job will run on
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        run: |
          echo "The job_id is: $GITHUB_JOB"   # Referenzieren der Standardumgebungsvariablen
          echo "The id of this action is: $GITHUB_ACTION"   # Referenzieren der Standardumgebungsvariablen
          echo "The run id is: $GITHUB_RUN_ID" 
          echo "The GitHub Actor's username is: $GITHUB_ACTOR"
      - name: step 2
        run: |
          echo "The run id is: $GITHUB_RUN_ID"

Commit und pushen Sie die Codeänderungen auf GitHub, überprüfen Sie Ihre Aktionen in Ihrem GitHub Actions Umgebungsvariablen-Projekt und Sie werden etwas Ähnliches wie das untenstehende Bild sehen.

Referencing the Default GitHub environment variables

Abschluss

Im Verlauf dieses Tutorials haben Sie gelernt, wie Sie GitHub Actions Umgebungsvariablen verwalten. Sie sollten nun ein grundlegendes Verständnis dafür haben, wie Umgebungsvariablen sicher gespeichert und Standardvariablen von GitHub verwendet werden können.

Jetzt, wie planen Sie, dieses neu gefundene Wissen bei der Arbeit mit GitHub Actions einzubeziehen? Vielleicht das Speichern der für die Bereitstellung erforderlichen API-Schlüssel?

Source:
https://adamtheautomator.com/github-actions-environment-variables/