11

I would like to declare some environment variables in a top level env section in my main.yml whose values use some pre-defined environment variables such as those documented in the GitHub Actions documentation. However, it appears I cannot use those pre-defined variables in the right hand side of my env section. For example:

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

Is there a way to make it so any step that needs ${resourceGroup} can get it without having to manually define it within each step?

the Hutt
  • 16,980
  • 2
  • 14
  • 44
edburns
  • 482
  • 1
  • 4
  • 13

3 Answers3

31

I tried the following two ways.

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 }}

In both cases, the results were obtained correctly.

enter image description here

However, in the case of env as a result, the former has not yet been evaluated. Maybe you can use the latter.

enter image description here

banyan
  • 3,837
  • 2
  • 31
  • 25
0

Yes, you can. I built a GitHub Action that will do it for you: Add Env vars.

Use it as the first step in a job in your workflow, and pass in JSON-stringified env vars as the map parameter. They need to be set for each job - they will only be set for all subsequent steps in a job.

Here is your test case, using the Add Env vars:

  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 }}
Josh Wulf
  • 4,727
  • 2
  • 20
  • 34
  • 2
    It was the "I hope all the readers are having a great day." - I was like, "*This guy*. Imma build it." – Josh Wulf Feb 22 '20 at 17:01