edburns
edburns

Reputation: 532

GitHub Actions: env: Use pre-defined environment variables on RHS within env section

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?

Upvotes: 13

Views: 14600

Answers (3)

Josh Wulf
Josh Wulf

Reputation: 4877

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

Upvotes: 0

banyan
banyan

Reputation: 4192

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

Upvotes: 34

Related Questions