Змінні середовища та секрети

CI/CD для машинного навчання

Ravi Bhadauria

Machine Learning Engineer

Контексти

  • Отримуйте відомості про заздалегідь визначені змінні та дані
    • запуски workflow
    • змінні
    • середовища runner
    • job'и та кроки
  • Звертайтесь до контекстів через вираз ${{ context.XXX }}
  • Контексти, що використовуються в цьому курсі
    • github: відомості про запуск workflow
    • env: змінні, задані у workflow
    • secrets: імена та значення, доступні для workflow
    • job: відомості про поточний job
    • runner: відомості про машину
1 https://docs.github.com/en/actions/learn-github-actions/contexts
CI/CD для машинного навчання

Змінні

  • Зберігайте неконфіденційну інформацію як звичайний текст
    • прапорці компілятора, імена користувачів, шляхи до файлів
  • Оголошуються як значення ключа env
  • Глобальна/локальна область визначається рівнем оголошення
  • Доступ із контексту env як ${{ 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 для машинного навчання

Secrets

  • Зберігайте конфіденційну інформацію у зашифрованому вигляді
    • паролі, API-ключі
  • Доступ до значень через контекст secrets
    • ${{ secrets.SuperSecret }}
  • Можна передавати як вхідний параметр або змінну середовища
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 }}
  • Друк секрету

    steps:
    - name: Print secret
      run: |
        echo "my secret is \
        ${{ secrets.SuperSecret }}"
    
  • Результат

Знімок лога workflow, де замість фактичного значення секрету виводиться ***

CI/CD для машинного навчання

Налаштування секретів

Зображення з вкладкою Settings на головній сторінці репозиторію

  • Перейдіть до Security > Secrets and Variables > Actions

Зображення, що показує вибір вкладки secret

CI/CD для машинного навчання

Налаштування секретів

Зображення, що показує, як задати ім'я та значення секрету

CI/CD для машинного навчання

Секрет GITHUB_TOKEN

  • Вбудований секрет від GitHub Actions
  • Використовується для дій у workflow
    • Клонування репозиторію та отримання коду
    • Відкриття й закриття issues та pull requests
    • Коментування issues та pull requests
  • Автоматично доступний у кожному workflow GitHub Actions
    • Доступ через ${{ secrets.GITHUB_TOKEN }}
  • Дозволи можна налаштувати з потрібною точністю
CI/CD для машинного навчання

Приклад: коментар до pull request

  • Надайте дозволи на запис коментарів у PR
permissions: 
  pull-requests: write
  • Використайте 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:

Фрагмент сторінки pull request із автоматичним коментарем від бота github-actions

1 https://gist.github.com/rbhadauria29/6d7fc51944b4fb48425c3c307fec77c6
CI/CD для машинного навчання

Давайте потренуємось!

CI/CD для машинного навчання

Preparing Video For Download...