Home > Blockchain >  Why another echo is needed in custom github action output
Why another echo is needed in custom github action output

Time:08-09

From the documentation of github actions:

outputs:
random-number:
  description: "Random number"
  value: ${{ steps.random-number-generator.outputs.random-id }}
runs:
  using: "composite"
  steps:
    - id: random-number-generator
    run: echo "::set-output name=random-id::$(echo $RANDOM)"
    shell: bash

In the run clause 2 echos exist, one for the whole line and one echo $RANDOM

Isn't the second echo unnessecary?

On my computer

echo "::set-output name=random-id::$(echo $RANDOM)"

outputs:

::set-output name=random-id::28124

while

echo "::set-output name=random-id::$RANDOM"

outputs

::set-output name=random-id::28123

so both works.

So why is $(echo $RANDOM) needed ?

CodePudding user response:

This comes from Metadata syntax / outputs for composite actions and is not strictly needed.

The documentation mentions:

If you need to pass environment variables into an action, make sure your action runs a command shell to perform variable substitution.

By using $(echo $RANDOM), you "force" said variable substitution.

  • Related