Действия GitHub: env: использовать предопределенные переменные среды для RHS в разделе env - PullRequest
1 голос
/ 22 февраля 2020

Я хотел бы объявить некоторые переменные окружения в разделе верхнего уровня env в моем main.yml , значения которого используют некоторые предопределенные переменные среды, такие как задокументированные в документации GitHub Actions . Однако, похоже, я не могу использовать эти предопределенные переменные в правой части моего раздела env. Например:

env:
  resourceGroup: ${GITHUB_RUN_ID}${GITHUB_RUN_NUMBER}

Есть ли способ сделать это так, чтобы любой шаг, которому требуется $ {resourceGroup}, мог получить его без необходимости определять его вручную на каждом шаге?

Ответы [ 3 ]

3 голосов
/ 22 февраля 2020

Я попробовал следующие два способа.

env:
  resourceGroup1: ${GITHUB_RUN_ID}-${GITHUB_RUN_NUMBER}
  resourceGroup2: ${{ github.run_id }}-${{ github.run_number }}

jobs:
  foo:
    runs-on: ubuntu-latest
    steps:
      - name: test1
        run: echo ${{ env.resourceGroup1 }}
      - name: test2
        run: echo ${{ env.resourceGroup2 }}

В обоих случаях результаты были получены правильно.

enter image description here

Тем не менее, в случае env в результате первый еще не был оценен. Может быть, вы можете использовать последний.

enter image description here

1 голос
/ 22 февраля 2020

Да, вы можете. Я создал GitHub Action, который сделает это за вас: Добавить Env vars .

Используйте его в качестве первого шага в задании в вашем рабочем процессе и передайте в JSON -stringified env vars как параметр map. Они должны быть установлены для каждого задания - они будут установлены только для всех последующих шагов в задании.

Вот ваш тестовый пример, использующий переменные Add Env:

  test:  
    runs-on: ubuntu-latest
    steps:
      - name: Setup env
        uses: jwulf/add-env-vars-action@master
        with:
          map: '{"resourceGroup1": "${{ github.run_id }}-${{ github.run_number }}", "resourceGroup2": "${{ github.run_id }}-${{ github.run_number }}"}'   
      - name: test1
        run: echo ${{ env.resourceGroup1 }}
      - name: test2
        run: echo ${{ env.resourceGroup2 }}
0 голосов
/ 27 февраля 2020
...