Update 0278-env-context.md (#299)

This commit is contained in:
Tingluo Huang
2020-01-22 20:09:09 -05:00
committed by GitHub
parent 43dd34820b
commit 2a506cc556

View File

@@ -15,6 +15,7 @@ User wants to reference workflow variables defined in workflow yaml file for act
Runner will create and populate the `env` context for every job execution using following logic: Runner will create and populate the `env` context for every job execution using following logic:
1. On job start, create `env` context with any environment variables in the job message, these are env defined in customer's YAML file's job/workflow level `env` section. 1. On job start, create `env` context with any environment variables in the job message, these are env defined in customer's YAML file's job/workflow level `env` section.
2. Update `env` context when customer use `::set-env::` to set env at the runner level. 2. Update `env` context when customer use `::set-env::` to set env at the runner level.
3. Update `env` context with step's `env` block before each step runs.
The `env` context is only available in the runner, customer can't use the `env` context in any server evaluation part, just like the `runner` context The `env` context is only available in the runner, customer can't use the `env` context in any server evaluation part, just like the `runner` context
@@ -22,17 +23,25 @@ Example yaml:
```yaml ```yaml
env: env:
env1: 100 env1: 10
env2: 20
env3: 30
jobs: jobs:
build: build:
env: env:
env1: 100
env2: 200 env2: 200
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- run: | - run: |
echo ${{ env.env1 }} echo ${{ env.env1 }} // 1000
if: env.env2 == 200 echo $env1 // 1000
name: ${{ env.env1 }}_${{ env.env2 }} echo $env2 // 200
echo $env3 // 30
if: env.env2 == 200 // true
name: ${{ env.env1 }}_${{ env.env2 }} //1000_200
env:
env1: 1000
``` ```
### Don't populate the `env` context with environment variables from runner machine. ### Don't populate the `env` context with environment variables from runner machine.
@@ -48,4 +57,4 @@ build:
- uses: docker://ubuntu:18.04 - uses: docker://ubuntu:18.04
with: with:
args: echo ${{env.USER}} <- what should customer expect this output? runner/root args: echo ${{env.USER}} <- what should customer expect this output? runner/root
``` ```