Proměnné prostředí a tajné hodnoty

CI/CD pro Machine Learning

Ravi Bhadauria

Machine Learning Engineer

Kontexty

  • Přístup k předdefinovaným proměnným a datům
    • spuštění workflow
    • proměnné
    • prostředí spouštěče
    • úlohy a kroky
  • Přístup ke kontextům pomocí syntaxe výrazů ${{ context.XXX }}
  • Kontexty používané v tomto kurzu
    • github: informace o spuštění workflow
    • env: proměnné definované ve workflow
    • secrets: názvy a hodnoty dostupné ve workflow
    • job: informace o aktuální úloze
    • runner: informace o stroji
1 https://docs.github.com/en/actions/learn-github-actions/contexts
CI/CD pro Machine Learning

Proměnné

  • Ukládání necitlivých informací jako prostý text
    • příznaky kompilátoru, uživatelská jména, cesty k souborům
  • Deklarovány jako hodnota klíče env
  • Globální/lokální rozsah je určen úrovní definice
  • Přístup z kontextu env jako ${{ env.ENV_VAR }}
name: Greeting on variable day
# Global env
env:
  Greeting: Hello

jobs: greeting_job: runs-on: ubuntu-latest # Local env: scoped to greeting_job env: First_Name: Ravi
steps: - run: | echo "${{ env.Greeting }} \ ${{ env.First_Name }}."
CI/CD pro Machine Learning

Tajné hodnoty

  • Ukládání citlivých informací v zašifrované podobě
    • hesla, API klíče
  • Přístup k hodnotám přes kontext secrets
    • ${{ secrets.SuperSecret }}
  • Lze uložit jako vstup nebo proměnnou prostředí
steps:
  - name: Hello world action
    env: # Set the secret as an env var
      super_secret: ${{ secrets.SuperSecret }}

with: # Or as an input super_secret: ${{ secrets.SuperSecret }}
  • Výpis tajné hodnoty

    steps:
    - name: Print secret
      run: |
        echo "my secret is \
        ${{ secrets.SuperSecret }}"
    
  • Výstup

Obrázek záznamu workflow zobrazující *** místo skutečné hodnoty tajné hodnoty

CI/CD pro Machine Learning

Nastavení tajných hodnot

Obrázek zobrazující kartu nastavení na úvodní stránce repozitáře

  • Přejděte na Security > Secrets and Variables > Actions

Obrázek zobrazující výběr karty pro tajné hodnoty

CI/CD pro Machine Learning

Nastavení tajných hodnot

Obrázek zobrazující nastavení názvu a hodnoty tajné hodnoty

CI/CD pro Machine Learning

Tajná hodnota GITHUB_TOKEN

  • Integrovaná tajná hodnota poskytovaná GitHub Actions
  • Slouží k provádění akcí workflow
    • Klonování repozitáře a načítání kódu
    • Otevírání a zavírání issues a pull requestů
    • Komentování issues a pull requestů
  • Automaticky dostupná v každém workflow GitHub Actions
    • Přístup přes ${{ secrets.GITHUB_TOKEN }}
  • Oprávnění lze přesně nastavit
CI/CD pro Machine Learning

Příklad: komentář k pull requestu

  • Udělení oprávnění k zápisu komentářů v PR
permissions: 
  pull-requests: write
  • Autorizace pomocí GITHUB_TOKEN
permissions: 
  pull-requests: write 
steps:
  - name: Comment PR
    uses: thollander/actions-comment-pull-request@v2
    with:
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
      message: |
        Hello world ! :wave:

Výřez ze stránky pull requestu zobrazující automatický komentář bota github-actions

1 https://gist.github.com/rbhadauria29/6d7fc51944b4fb48425c3c307fec77c6
CI/CD pro Machine Learning

Pojďme si to procvičit!

CI/CD pro Machine Learning

Preparing Video For Download...