Lanciare le Variabili d’Ambiente e i Segreti di GitHub Actions

Se sei nuovo alle variabili d’ambiente di GitHub Actions, potresti non aver ancora imparato come memorizzarle. Ma è possibile? Sì!

In questo tutorial, imparerai diversi modi per salvare le variabili d’ambiente di GitHub Actions e i segreti che puoi utilizzare quando necessario durante il lavoro con GitHub Actions.

Pronto? Continua a leggere per iniziare!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica che richiede un qualsiasi sistema operativo con Git installato, il sistema operativo Ubuntu viene utilizzato nel tutorial. Inoltre, è necessaria una conoscenza di base delle operazioni di Git per eseguire il commit del codice in un repository di variabili d’ambiente di GitHub Actions.

Impostazione delle variabili d’ambiente di GitHub Actions

Quando automatizzi processi con un flusso di lavoro di GitHub Actions, potresti avere la necessità di allegare variabili d’ambiente ai tuoi flussi di lavoro. Come? Prima devi creare e specificare variabili d’ambiente personalizzate nel flusso di lavoro con la parola chiave env.

1. Crea una directory chiamata .github/workflows in cui memorizzare il file del flusso di lavoro.

2. Successivamente, crea un file con il nome che preferisci nella directory .github/workflows. Ma per questo esempio, il file si chiama main.yml. Copia e incolla il codice sottostante nel file main.yml.

Il codice sottostante imposta e visualizza la variabile d’ambiente API_KEY quando il codice attiva il workflow.

name: env_tutorial
## Attiva il workflow quando c'è un push o 
## una pull request sul branch principale
on: [pull_request, push] 

env:
  ## Imposta la variabile d'ambiente
  API_KEY: XXXXXXXXXXXX    

jobs:
  job1:
    ## Il tipo di runner su cui verrà eseguito il job, 
    ## qui viene eseguito su ubuntu latest
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        ## Fai riferimento alle tue variabili d'ambiente
        run: echo "The API key is:${{env.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Un altro modo per fare riferimento alle tue variabili d'ambiente
        run: echo "The API key is:$API_KEY"

3. Esegui il commit e spingi il codice nel tuo repository GitHub.

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

4. Ora, apri il tuo browser web e vai al tuo progetto su GitHub. Fai clic sulla scheda Actions, quindi fai clic sul tuo commit corrente.

Vedrai qualcosa di simile all’immagine qui sotto, che mostra che GitHub ha eseguito il workflow.

GitHub actions Environment variables for repository

5. Infine, fai clic su uno tra job1 o job2, e vedrai che hai fatto riferimento con successo alla variabile d’ambiente che hai inizializzato.

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

Definizione di una variabile d’ambiente per un lavoro

Ora che hai inizializzato la variabile d’ambiente nel file di workflow, qualsiasi lavoro può fare riferimento alla variabile d’ambiente. Ma forse vuoi che solo un lavoro faccia riferimento alla variabile d’ambiente. In tal caso, inserisci la parola chiave env nel lavoro stesso.

1. Sostituisci il codice nel tuo file main.yml con il codice qui sotto.

Il codice sottostante mostra che quando inserisci la variabile d’ambiente in un particolare lavoro, gli altri lavori non possono fare riferimento alla variabile d’ambiente.

name: env_tutorial
## Attiva il workflow quando c'è un push o 
## una pull request sul branch principale
on: [pull_request, push] 

jobs:
  job1:
    ## Tipo di runner su cui verrà eseguito il lavoro
    runs-on: ubuntu-latest 
    env:
      ## Variabile d'ambiente
      API_KEY: XXXXXXXXXXXX    
    steps:
      - name: step 1
        ## Fai riferimento alle tue variabili d'ambiente
        run: echo "The API key is:${{env.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Un altro modo per fare riferimento alle tue variabili d'ambiente
        run: echo "The API key is:$API_KEY"  

2. Esegui il commit delle tue modifiche e spedisce i lavori dal tuo codice a GitHub Actions per le variabili d’ambiente, come hai fatto nella sezione precedente.

3. Infine, vai al tuo progetto su GitHub, quindi fai clic su entrambi job1 e job2 per vedere il loro confronto:

  • lavoro1 – Vedrai che hai fatto riferimento alla variabile di ambiente perfettamente.
  • lavoro2 – La chiave API è vuota.
Viewing Referenced Environment Variable (job1)
Viewing Referenced Environment Variable (job2)

Definizione di una variabile di ambiente per un passaggio

Ora che hai imparato come specificare le variabili di ambiente all’interno di un lavoro, devi chiederti come puoi fare lo stesso con i passaggi.

Per i passaggi in un lavoro, specifica la variabile di ambiente all’interno del passaggio come hai fatto per il lavoro.

1. Sostituisci il codice che hai nel tuo file main.yml con il codice qui sotto.

Nel codice qui sotto, specifica la variabile di ambiente nel passaggio 1 ma non nel passaggio 2, e vedrai l’effetto nei passaggi successivi.

name: env_tutorial
## Attiva il workflow quando c'è un push, o 
## pull request sul branch principale
on: [pull_request, push] 

jobs:
  job1:
    ## Il tipo di runner su cui verrà eseguito il lavoro
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        env:
          ## Variabile di ambiente per il passaggio 1
          API_KEY: XXXXXXXXXXXX    
        ## Fai riferimento alle tue variabili di ambiente
        run: echo "The API key is:${{env.API_KEY}}"   
      - name: step 2
        ## Fai riferimento alle tue variabili di ambiente
        run: echo "The API key is:${{env.API_KEY}}"   

2. Ora fai il commit delle modifiche e spingi il codice su GitHub.

3. Infine, vai al tuo progetto sulle variabili d’ambiente delle azioni di GitHub e clicca su lavoro1.

Anche se fai riferimento alle due chiavi API nello stesso lavoro (job1) in entrambi i passaggi, passo 2 non ha potuto valutare la chiave API (vuota), come mostrato di seguito. Perché? Perché non hai specificato la variabile d’ambiente all’interno di passo 2 nel tuo codice.

Setting environment variables for steps

Gestione delle variabili d’ambiente tramite le variabili d’ambiente e i segreti di GitHub Actions

Invece di codificarle direttamente, potresti voler memorizzare in modo sicuro la tua variabile d’ambiente, e i segreti di GitHub possono fare proprio questo. Le variabili d’ambiente di GitHub Actions criptano i valori che inserisci nei segreti, rendendoli invisibili e non leggibili a occhio nudo.

Il segreto creato con questo metodo è accessibile all’intero flusso di lavoro, ai lavori e ai passaggi; non ci sono restrizioni.

Per memorizzare la tua variabile d’ambiente in GitHub Secrets:

1. Prima di tutto, carica il tuo codice su GitHub come hai fatto nelle sezioni precedenti.

2. Successivamente, vai al tuo progetto su GitHub e clicca sulla scheda Impostazioni.

Fai clic su Segreti nella scheda sottostante per iniziare ad aggiungere un segreto.

Storing environment variables in Secrets

3. Quindi, fai clic su Nuovo segreto del repository, e vedrai un modulo per compilare i dettagli sul segreto che stai aggiungendo.

Creating new repository secret

4. Compila il modulo in modo appropriato (Nome e Valore) e fai clic sul pulsante Aggiungi segreto per inviare. Ora la API_KEY è salvata in GitHub Secrets. In questo modo, GitHub imposta in modo sicuro le variabili d’ambiente come segreti a cui puoi fare riferimento quando lavori con GitHub Actions.

Filling name and value of the new secret

5. Modifica il tuo file main.yml e sostituisci la parola chiave env con secrets.

Di seguito, puoi vedere che fai riferimento alla chiave API in questo formato ${{secrets.API_KEY}} anziché codificare direttamente la chiave API stessa.

name: env_tutorial
## Attiva il flusso di lavoro quando c'è un push, o 
## richiesta di pull sulla branch principale
on: [pull_request, push] 

jobs:
  job1:
    ## Il tipo di runner su cui verrà eseguito il lavoro
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        ## Fai riferimento alle tue variabili d'ambiente
        run: echo "The API key is:${{secrets.API_KEY}}"   

  job2:
    runs-on: ubuntu-latest
    steps:
      - name: step 1
        ## Fai riferimento alle tue variabili d'ambiente
        run: echo "The API key is:${{secrets.API_KEY}}"  

6. Infine, esegui il commit e push del codice su GitHub, e vai al tuo progetto sulle variabili d’ambiente di GitHub Actions. Fai riferimento alla prima sezione.

Vedrai qualcosa di simile all’immagine qui sotto, ma non potrai vedere effettivamente il API_key poiché GitHub cripta i valori che inserisci nelle secrets.

Displaying API key from GitHub Actions environment variables secrets

Fare Riferimento alle Variabili d’Ambiente Predefinite di GitHub

Ci sono un paio di variabili d’ambiente predefinite fornite da GitHub, che puoi utilizzare per accedere ai filesystem nel repository invece di codificare direttamente i percorsi. Le variabili d’ambiente predefinite di GitHub ti consentono di essere più dinamico quando fai riferimento alle variabili d’ambiente fornite da GitHub.

Alcuni dei percorsi che puoi ottenere con le variabili d’ambiente predefinite sono i seguenti:

  • GITHUB_JOB – Fornisce l’ID del lavoro corrente.
  • GITHUB_ACTION – Fornisce l’ID dell’azione corrente
  • GITHUB_ACTION_PATH – Fornisce il percorso in cui è situata la tua azione.
  • GITHUB_ACTOR – fornisce il nome della persona o dell’app che ha avviato il flusso di lavoro, come il tuo nome utente GitHub.
  • GITHUB_RUN_ID – fornisce il numero univoco del comando run.

Sostituisci ciò che hai nel tuo file main.yml con il codice qui sotto. Il codice sotto mostra la variabile d’ambiente predefinita indicata nel codice.

name: env_tutorial
## Attiva il flusso di lavoro quando c'è un push o 
## una richiesta di pull sulla branch principale
on: [pull_request, push] 

jobs:
  job1:
    ## Il tipo di runner su cui verrà eseguito il lavoro
    runs-on: ubuntu-latest 
    steps:
      - name: step 1
        run: |
          echo "The job_id is: $GITHUB_JOB"   # fai riferimento alle variabili d'ambiente predefinite
          echo "The id of this action is: $GITHUB_ACTION"   # fai riferimento alle variabili d'ambiente predefinite
          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"

Committa e pusha le modifiche al codice su GitHub, controlla le tue azioni nel progetto di variabili d’ambiente delle azioni GitHub e vedrai qualcosa di simile all’immagine qui sotto.

Referencing the Default GitHub environment variables

Conclusioni

In tutto questo tutorial, hai imparato come gestire le variabili d’ambiente delle azioni GitHub. Dovresti ora avere una conoscenza di base del modo sicuro di memorizzare le variabili d’ambiente e di come utilizzare quelle predefinite fornite da GitHub.

Ora, come pensi di incorporare questa nuova conoscenza quando lavori con le Azioni di GitHub? Forse salvare le chiavi API necessarie per il rilascio?

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