1

I would like to conditionally execute a Github Action according to a previous job (Format). If the code needed to be formatted, I would like to execute the following job (create_commit), otherwise skip it and do nothing.

Unfortunately at the moment the second job never gets triggered, no matter what is the output of the first job.

My action:

name: Format on: push jobs: format: name: Code formatting in Black runs-on: ubuntu-latest outputs: trigger_commit: ${{ steps.changes_present.outputs.changes_detected }} steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install package run: pip install 'black[d]' - name: Run black formatter run: black . - name: Check diff for changes id: changes_present run: | outputs=$(git diff) if ! [ -z "$outputs" ] then echo '::set-output name=changes_detected::true' fi create_commit: runs-on: ubuntu-latest <- Job never executed needs: format if: needs.format.outputs.changes_detected == true steps: - name: Commit run: | git config user.name 'github-actions[bot]' git config user.email 'github-actions[bot]@users.noreply.github.com' git commit -am "Files updated after formatting" git push 

1 Answer 1

1

The output of the format job is named trigger_commit instead of changes_detected. So try this:

 if: needs.format.outputs.trigger_commit == `true` 

You could use the actionlint to check this error, an online version is available too. See this link .

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

1 Comment

Grazie Matteo. Very nice the actionLint tool.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.