#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
.
Вот пример того, как использовать переменные 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"