13

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?

3 Answers 3

34

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

Sign up to request clarification or add additional context in comments.

1 Comment

Ah, you are right. The syntax he was using was incorrect!
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 }}

1 Comment

It was the "I hope all the readers are having a great day." - I was like, "This guy. Imma build it."
0

It looks like set-env works as well: https://help.github.com/en/actions/reference/development-tools-for-github-actions#set-an-environment-variable-set-env

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.