👉 Предварительные условия
Если вы новичок в действиях GitHub, я предлагаю вам прочитать мое представление о действиях GitHub — GitHub Actions (Часть 1) Статья.
В действиях в основном есть три типа переменных среды.
- Пользовательские переменные среды.
- По умолчанию переменные среды.
- Зашифрованные переменные среды.
1. Пользовательские переменные среды
Пользовательские переменные среды могут быть объявлены самими собой в любом файле рабочего процесса.
Мы можем объявить пользовательские переменные среды в рамках различной области доступа в файле рабочего процесса.
- Уровень рабочего процесса
- Уровень работы
- Шаги Уровень
Таким образом, тогда заявленная переменная может быть доступна только с помощью конкретной области.
Пример:
- Уровень рабочего процесса пользовательские переменные среды
Здесь я объявил переменную, называемую Pulferenv на уровне рабочего процесса и пытался повторить ее на разных уровнях.
name: workflow-level-custom-environment-variables on: [push] # Here the environment variable is declared in workflow level env: PUBLICENV: Available for all jobs in this workflow jobs: sample-job-1: runs-on: ubuntu-latest steps: - name: step-1 run: echo "${PUBLICENV}" # This will echo the value/string of PUBLICENV - name: step-2 run: echo "${PUBLICENV}" # This will echo the value/string of PUBLICENV sample-job-2: runs-on: ubuntu-latest steps: - run: echo "${PUBLICENV}" # This will echo the value/string of PUBLICENV
- Уровень рабочих мест пользовательские переменные среды
Здесь я объявил переменную, называемую Jobenv, на уровне «выборки Job-1» и попытка повторить ее на разных уровнях.
name: job-level-custom-environment-variables on: [push] jobs: sample-job-1: env: JOBENV: Available for this specific job only # Here the environment variable is declared in job level runs-on: ubuntu-latest steps: - name: step-1 run: echo "${JOBENV}" # This will echo the value/string of JOBENV - name: step-2 run: echo "${JOBENV}" # This will echo the value/string of JOBENV sample-job-2: runs-on: ubuntu-latest steps: - run: echo "${JOBENV}" # This will NOT echo the value/string of JOBENV
- Шаг уровня пользовательских переменных среды
Здесь я объявил переменную, называемую Stepenv на уровне «шага-1» внутри «Образец-Job-1» и пытался повторить ее на разных уровнях.
name: step-level-custom-environment-variables on: [push] jobs: sample-job-1: runs-on: ubuntu-latest steps: - name: step-1 env: STEPENV: Available for this specific job only # Here the environment variable is declared in step level run: echo "${STEPENV}" # This will echo the value/string of STEPENV - name: step-2 run: echo "${STEPENV}" # This will NOT echo the value/string of STEPENV sample-job-2: runs-on: ubuntu-latest steps: - run: echo "${STEPENV}" # This will NOT echo the value/string of STEPENV
2. По умолчанию переменные среды
GitHub предоставляет некоторые переменные среды по умолчанию для многих полезных параметров вашего репозитория. Мы можем использовать их в любом месте в рабочем процессе.
Вот список переменных ENV по умолчанию в действиях GitHub
- Github_workflow Имя рабочего процесса.
Github_run_id Уникальный номер для каждого запуска в репозитории. Этот номер не меняется, если вы заново запустите запуск рабочего процесса.
Github_run_number Уникальное число для каждого прогона определенного рабочего процесса в репозитории. Это число начинается с 1 для первого запуска рабочего процесса и увеличивает каждый новый запуск. Этот номер не меняется, если вы заново запустите запуск рабочего процесса.
Github_action Уникальный идентификатор (ID) действия.
Github_actions Всегда устанавливайте True, когда GitHub Daises выполняет рабочий процесс. Вы можете использовать эту переменную для дифференциации, когда тесты выполняются локально или действиями GitHub.
Github_actor Имя человека или приложения, которое инициировало рабочий процесс.
Github_repository Владелец и имя репозитория.
Github_event_name Имя события WebHook, которое вызвало рабочий процесс.
Github_event_path Путь файла с полной полезной нагрузкой события WebHook.
Github_workspace Путь каталога рабочей области GitHub.
Github_sha Коммит SHA, который вызвал рабочий процесс.
Github_ref Ветвь или метка, что вызвало рабочий процесс.
Github_head_ref Задается только для разветвленных репозитории. Ветвь репозитория головы.
Github_base_ref Задается только для разветвленных репозитории. Ветвь базового репозитория.
Github_server_url Возвращает URL -адрес сервера GitHub.
Github_api_url Возвращает URL API.
Github_graphql_url Возвращает URL GraphQL API.
Пример:
name: default-environment-variables on: [push] jobs: sample-job: runs-on: ubuntu-latest steps: - name: echo-default-env-variables run: | echo "Home: ${HOME}" echo "GITHUB_WORKFLOW: ${GITHUB_WORKFLOW}" echo "GITHUB_ACTIONS: ${GITHUB_ACTIONS}" echo "GITHUB_ACTOR: ${GITHUB_ACTOR}" echo "GITHUB_REPOSITORY: ${GITHUB_REPOSITORY}" echo "GITHUB_EVENT_NAME: ${GITHUB_EVENT_NAME}" echo "GITHUB_WORKSPACE: ${GITHUB_WORKSPACE}" echo "GITHUB_SHA: ${GITHUB_SHA}" echo "GITHUB_REF: ${GITHUB_REF}"
Выходы:
3. Зашифрованные переменные среды
В действиях GitHub мы можем также создать зашифрованную переменную среды. Мы можем использовать Секреты GitHub хранить ключи API и пароли.
- Нажмите на настройки в репозитории
- Нажмите на секреты
- Нажмите на «Секрет нового хранилища»
- Дайте your_secret_name и значение и нажмите «Добавить секрет»
Пример:
Вот пример кода, как мы можем использовать зашифрованные переменные, не разоблачая значение.
name: working-with-encrypted-environment-variables on: push: branches: [main, develop] jobs: sample-job: runs-on: ubuntu-latest steps: - name: Deploy-to-staging if: github.event_name == 'push' && github.ref == 'refs/heads/develop' # Here this will be triggered only when the "push" event is performed only to the specific "develop" branch run: npx surge --project ./build --domain eight-circle.surge.sh env: SURGE_LOGIN: ${{secrets.SURGE_LOGIN}} SURGE_TOKEN: ${{secrets.SURGE_TOKEN}} # SURGE_LOGIN & SURGE_TOKEN is stored as github secrets
👏 Бонусный совет:
На экране журнала «Действия», когда любой шаг проходит, он указывает на зеленую галочку, и когда шаг не сбой, это указывает на красную галочку, но мы не можем увидеть точную ошибку там, если не включить отладку.
Чтобы обеспечить отладку в действиях GitHub, сохраните эти две зашифрованные переменные среды в секретах GitHub в репозитории в пертиме. Затем, когда шаг не удастся, вы увидите сообщения отладки на одном экране журнала, и это облегчает отладку ваших ошибок.
Secret : ACTIONS_STEP_DEBUG Value : TRUE Secret : ACTIONS_RUNNER_DEBUG Value : TRUE
👉 Что дальше?
Работа с внешними действиями — Действия GitHub (часть 3)
Благодарю вас
Надеюсь, вам все понравились и что -то узнали из этого. Дайте мне знать ваши комментарии и предложения в разделе обсуждения.
👉 Посетите меня — https://mihinduranasinghe.com/
Оригинал: «https://dev.to/mihinduranasinghe/working-with-environment-variables-github-actions-part-2-46po»