Могу ли я определить глобальный для разных рабочих мест

#github-actions

Вопрос:

У меня есть рабочий процесс с 2 заданиями:

 on: [push]

jobs:
  ssql:
    runs-on: ubuntu-latest
### bunch of steps in between ###
  - name: Upload data as artifact
    uses: actions/upload-artifact@v2
    with:
      name: ${{ env.GAME }}   "-"   "data"
      path: output_data/training-data.csv
    env:
      GAME: "FunGame"

Rtrain:
    runs-on: ubuntu-latest
    name: Train model
    needs: ssql
    steps:
      - name: checkout current repo
        uses: actions/checkout@v2
      - name: Retreive data from ssql job 
        uses: actions/download-artifact@v2
        with:
          name: ${{ env.GAME }}   "-"   "data"
        env:
          GAME: "FunGame"
 

Мне пришлось дважды устанавливать переменную env $GAME, по одному разу в каждой работе. Есть ли какой-либо синтаксис, в котором я могу, например, добавить это вверху, чтобы сделать его действительно глобальным для разных заданий, например, что-то вроде:

 on: [push]

env:
  GAME: "FunGame"

jobs: ...
 

Ответ №1:

Вы можете установить переменную env точно так, как вы описали на уровне рабочего процесса.

Просто обратите внимание, что это может конфликтовать с переменными env, установленными на уровне задания или на уровне шага, если они имеют одно и то же имя. В этом случае используемая переменная является наиболее конкретной: STEP over JOB over WORKFLOW .

Ссылка 1 Ссылка 2

Вот пример того, как использовать переменные env на разных уровнях (без конфликтов):

 
name: Environment Workflow

on:
  workflow_dispatch:

env:
  WORKFLOW_VARIABLE: WORKFLOW

jobs:

  job1:
    runs-on: ubuntu-latest
    env:
      JOB_VARIABLE: JOB
    steps:
      - name: Run Commands with various variables
        if: ${{ env.WORKFLOW_VARIABLE == 'WORKFLOW' }}
        env:
          STEP_VARIABLE: STEP
        run: |
          echo "Hello World"
          echo "This is the $WORKFLOW_VARIABLE environment variable"
          echo "This is the $JOB_VARIABLE environment variable"
          echo "This is the $STEP_VARIABLE environment variable"