Het lanceren van GitHub Actions Omgevingsvariabelen en Geheimen

Als je nieuw bent bij GitHub Actions en omgevingsvariabelen, heb je mogelijk nog niet geleerd hoe je ze moet opslaan. Maar is het mogelijk? Ja!

In deze tutorial leer je verschillende manieren om je GitHub Actions omgevingsvariabelen en geheimen op te slaan die je kunt gebruiken wanneer dat nodig is bij het werken met GitHub Actions.

Klaar? Lees verder om aan de slag te gaan!

Vereisten

Deze tutorial zal een praktische demonstratie zijn die elk besturingssysteem met Git geïnstalleerd vereist, Ubuntu OS wordt in de tutorial gebruikt. Bovendien is een basiskennis van Git-operaties noodzakelijk om code naar een GitHub Actions omgevingsvariabelen repository te committen.

Instellingen voor GitHub Actions Omgevingsvariabelen

Bij het automatiseren van processen met GitHub Actions workflow, kan het nodig zijn om omgevingsvariabelen aan je workflows te koppelen. Hoe? Je moet eerst aangepaste omgevingsvariabelen maken en specificeren in de workflow met het env-keyword.

1. Maak een map met de naam .github/workflows waar je je workflowbestand zult opslaan.

2. Maak vervolgens een bestand aan met de door jou gekozen naam in de .github/workflows map. Maar voor dit voorbeeld is het bestand genaamd main.yml. Kopieer en plak de onderstaande code naar het main.yml bestand.

De onderstaande code stelt de API_KEY omgevingsvariabele in en toont deze wanneer de code de workflow heeft geactiveerd.

name: env_tutorial
## Triggers de workflow wanneer er een push is, of 
## pull-verzoek op de hoofdbranche is
on: [pull_request, push] 

env:
  ## Stelt de omgevingsvariabele in
  API_KEY: XXXXXXXXXXXX    

jobs:
  job1:
    ## Het type runner waarop de job zal worden uitgevoerd, 
    ## hier wordt het uitgevoerd op de nieuwste versie van ubuntu
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        ## Verwijst naar uw omgevingsvariabelen
        run: echo "The API key is:${{env.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Nog een manier om naar uw omgevingsvariabelen te verwijzen
        run: echo "The API key is:$API_KEY"

3. Commit en push de code naar je GitHub repository.

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

4. Open nu je webbrowser en navigeer naar je project op GitHub. Klik op het Actions tabblad, klik vervolgens op je huidige commit.

Je ziet iets zoals de onderstaande afbeelding, wat aangeeft dat GitHub de workflow heeft uitgevoerd.

GitHub actions Environment variables for repository

5. Klik ten slotte op job1 of job2, en je zult zien dat je met succes de omgevingsvariabele hebt gerefereerd die je hebt geïnitialiseerd.

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

Het definiëren van een omgevingsvariabele voor een taak

Nu je de omgevingsvariabele hebt geïnitialiseerd in het gehele workflowbestand, kan elke taak naar de omgevingsvariabele verwijzen. Maar misschien wil je dat slechts één taak naar de omgevingsvariabele verwijst. Zo ja, plaats het env trefwoord in de taak zelf.

1. Vervang de code in je main.yml bestand door de onderstaande code.

De onderstaande code laat zien dat wanneer je de omgevingsvariabele in een bepaalde taak plaatst, andere taken de omgevingsvariabele niet kunnen refereren.

name: env_tutorial
## Triggert de workflow wanneer er een push is, of 
## pull-aanvraag op de hoofdbranche
on: [pull_request, push] 

jobs:
  job1:
    ## Het type runner waarop de taak zal worden uitgevoerd
    runs-on: ubuntu-latest 
    env:
      ## Omgevingsvariabele
      API_KEY: XXXXXXXXXXXX    
    steps:
      - name: step 1
        ## Verwijs naar je omgevingsvariabelen
        run: echo "The API key is:${{env.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Een andere manier om naar je omgevingsvariabelen te verwijzen
        run: echo "The API key is:$API_KEY"  

2. Bevestig je wijzigingen en duw taken vanuit je code naar GitHub Actions omgevingsvariabelen zoals je deed in de vorige sectie.

3. Ga ten slotte naar je project op GitHub, klik vervolgens op zowel job1 als job2 om hun vergelijking te zien:

  • taak1 – Je zult zien dat je de omgevingsvariabele perfect hebt gerefereerd.
  • taak2 – De API-sleutel is leeg.
Viewing Referenced Environment Variable (job1)
Viewing Referenced Environment Variable (job2)

Het definiëren van een omgevingsvariabele voor een stap

Nu je hebt geleerd hoe je omgevingsvariabelen kunt specificeren binnen een taak, vraag je je vast af hoe je hetzelfde kunt doen met de stappen.

Voor de stappen in een taak, specificeer je de omgevingsvariabele binnen de stap zoals je deed voor de taak.

1. Vervang de code die je hebt in je main.yml bestand met de onderstaande code.

In de onderstaande code specificeer je de omgevingsvariabele in stap 1 maar niet in stap 2, en je zult het effect zien in de volgende stappen.

name: env_tutorial
## Activeert de workflow wanneer er een push is, of 
## pull-verzoek op de hoofdbranch
on: [pull_request, push] 

jobs:
  job1:
    ## Het type runner waarop de taak zal worden uitgevoerd
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        env:
          ## Omgevingsvariabele voor stap 1
          API_KEY: XXXXXXXXXXXX    
        ## Verwijs naar je omgevingsvariabelen
        run: echo "The API key is:${{env.API_KEY}}"   
      - name: step 2
        ## Verwijs naar je omgevingsvariabelen
        run: echo "The API key is:${{env.API_KEY}}"   

2. Commit nu de wijzigingen en duw de code naar GitHub.

3. Navigeer ten slotte naar je project op GitHub Actions omgevingsvariabelen, en klik op taak1.

Hoewel je in dezelfde taak (job1) in beide stappen refereert naar de twee API-sleutels, kon stap 2 de API-sleutel (leeg) niet beoordelen, zoals hieronder wordt getoond. Waarom? Omdat je de omgevingsvariabele niet hebt gespecificeerd binnen stap 2 in je code.

Setting environment variables for steps

Het beheren van omgevingsvariabelen via GitHub Actions-omgevingsvariabelen en Geheimen

In plaats van hardcoderen, wil je mogelijk je omgevingsvariabele veilig opslaan, en GitHub-geheimen kunnen dat precies doen. GitHub Actions-omgevingsvariabelen versleutelen de waarden die je in geheimen plaatst, zodat ze niet zichtbaar of leesbaar zijn voor het blote oog.

Het geheim dat op deze manier is gemaakt, is toegankelijk voor de hele workflow, taken en stappen; er zijn geen beperkingen.

Om je omgevingsvariabele op te slaan in GitHub-geheimen:

1. Duw eerst je code naar GitHub zoals je in de vorige secties hebt gedaan.

2. Ga vervolgens naar je project op GitHub en klik op het Instellingen-tabblad.

Klik op Geheimen in het tabblad hieronder om een geheim toe te voegen.

Storing environment variables in Secrets

3. Klik vervolgens op de Nieuw repository-geheim, en je ziet een formulier om details over het geheim dat je toevoegt in te vullen.

Creating new repository secret

4. Vul het formulier naar behoren in (Naam en Waarde) en klik op de Geheim toevoegen-knop om te verzenden. Nu is de API_KEY opgeslagen in GitHub-geheimen. Op deze manier stelt GitHub veilig omgevingsvariabelen in als geheimen die je kunt refereren bij het werken met GitHub Actions.

Filling name and value of the new secret

5. Bewerk je main.yml bestand en vervang het env trefwoord met secrets.

Hieronder zie je dat je de API-sleutel refereert in dit ${{secrets.API_KEY}} formaat in plaats van de API-sleutel zelf hard te coderen.

name: env_tutorial
## Start de workflow wanneer er een push is, of 
## pull-verzoek op de hoofdbranch
on: [pull_request, push] 

jobs:
  job1:
    ## Het type runner waarop de taak zal worden uitgevoerd
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        ## Verwijs naar je omgevingsvariabelen
        run: echo "The API key is:${{secrets.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Verwijs naar je omgevingsvariabelen
        run: echo "The API key is:${{secrets.API_KEY}}"  

6. Commit en push ten slotte de code naar GitHub, en navigeer naar je project op GitHub Actions omgevingsvariabelen. Verwijs naar het eerste gedeelte.

Je ziet iets zoals de onderstaande afbeelding, maar je kunt de daadwerkelijke API_key niet zien omdat GitHub de waarden die je in secrets invoert versleutelt.

Displaying API key from GitHub Actions environment variables secrets

Verwijzen naar Standaard GitHub Omgevingsvariabelen

Er zijn een paar standaard omgevingsvariabelen die door GitHub worden geleverd, die je kunt gebruiken om toegang te krijgen tot bestandssystemen in het repository in plaats van paden hard te coderen. Standaard GitHub omgevingsvariabelen stellen je in staat dynamischer te zijn bij het verwijzen naar omgevingsvariabelen die door GitHub aan je zijn verstrekt.

Sommige van de paden die je kunt krijgen met de standaard omgevingsvariabelen zijn als volgt:

  • GITHUB_JOB – Biedt job_id van de huidige taak.
  • GITHUB_ACTION – Biedt de id van de huidige actie
  • GITHUB_ACTION_PATH – Biedt het pad waar uw actie zich bevindt.
  • GITHUB_ACTOR – Biedt de naam van de persoon of app die de workflow heeft geïnitieerd, zoals uw GitHub-gebruikersnaam.
  • GITHUB_RUN_ID – Biedt het unieke nummer van de run-opdracht.

Vervang wat je hebt in je main.yml bestand met de onderstaande code. De onderstaande code toont de standaard omgevingsvariabele zoals vermeld in de code.

name: env_tutorial
## Triggert de workflow wanneer er een push of 
## pull-verzoek is op de hoofdtak
on: [pull_request, push] 

jobs:
  job1:
    ## Het type runner waarop de taak zal worden uitgevoerd
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        run: |
          echo "The job_id is: $GITHUB_JOB"   # verwijzen naar de standaard omgevingsvariabelen
          echo "The id of this action is: $GITHUB_ACTION"   # verwijzen naar de standaard omgevingsvariabelen
          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"

Commiteer en push de code wijzigingen naar GitHub, controleer je acties in je GitHub Actions omgevingsvariabelen project, en je zult iets zien zoals de afbeelding hieronder.

Referencing the Default GitHub environment variables

Conclusie

Gedurende deze tutorial heb je geleerd hoe je GitHub Actions omgevingsvariabelen kunt beheren. Je zou nu een basiskennis moeten hebben van het veilig opslaan van omgevingsvariabelen en hoe je de standaardvariabelen van GitHub kunt gebruiken.

Nu, hoe ben je van plan om deze nieuwe kennis toe te passen bij het werken met GitHub Actions? Misschien door de benodigde API-sleutels voor implementatie op te slaan?

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