Skip to content

Subset List Test

Subset List Test #43

Workflow file for this run

name: Subset List Test
on:
workflow_dispatch:
inputs:
subset:
description: 'Space-separated list of environments to build. Leave empty to build all.'
required: false
default: ''
jobs:
check:
name: Check inputs to determine what to run
runs-on: ubuntu-latest
steps:
- id: parse_list
run: |
run_str="${{ github.event.inputs.subset }}"
if [ "$run_str" == "" ]; then echo "no_skip=true" >> $GITHUB_OUTPUT; exit 0; fi
echo "no_skip=false" >> $GITHUB_OUTPUT
IFS=', ' read -r -a arr <<< "$run_str"
JSON="["
for item in ${arr[@]}; do JSON="$JSON\"$item\","; done
if [[ $JSON == *, ]]; then JSON="${JSON%?}"; fi
JSON="$JSON]"
echo "run_list=$( echo "$JSON" )" >> $GITHUB_OUTPUT
echo $JSON
outputs:
no_skip: ${{ steps.parse_list.outputs.no_skip }}
run_list: ${{ steps.parse_list.outputs.run_list }}
one:
runs-on: ubuntu-latest
needs: [check]
if: always() && (needs.check.outputs.no_skip == 'true' || contains(fromJSON(needs.check.outputs.run_list), 'one'))
steps:
- name: Run
run: echo ran ${{ github.job }}!
run: echo ${{ contains(fromJSON(needs.check.outputs.run_list), 'one') }}

Check failure on line 38 in .github/workflows/subset_list.yml

View workflow run for this annotation

GitHub Actions / Subset List Test

Invalid workflow file

The workflow is not valid. .github/workflows/subset_list.yml (Line: 38, Col: 9): 'run' is already defined .github/workflows/subset_list.yml (Line: 39, Col: 9): 'run' is already defined
run: echo ${{ contains(fromJSON(needs.check.outputs.run_list), github.job) }}
two:
runs-on: ubuntu-latest
needs: [check,one]
if: |
always() && (needs.check.outputs.no_skip == 'true' ||
contains(fromJSON(needs.check.outputs.run_list), 'two'))
steps:
- name: Run
run: echo ran ${{ github.job }}!
three:
runs-on: ubuntu-latest
needs: [check,one]
if: always() && (needs.check.outputs.no_skip == 'true' || contains(fromJSON(needs.check.outputs.run_list), github.job))
steps:
- name: Run
run: echo ran ${{ github.job }}!
four:
runs-on: ubuntu-latest
needs: [check]
if: always() && (needs.check.outputs.no_skip == 'true' || contains(fromJSON(needs.check.outputs.run_list), github.job))
steps:
- name: Run
run: echo ran ${{ github.job }}!
five:
runs-on: ubuntu-latest
needs: [check,three]
if: always() && (needs.check.outputs.no_skip == 'true' || contains(fromJSON(needs.check.outputs.run_list), github.job))
steps:
- name: Run
run: echo ran ${{ github.job }}!
two_again:
runs-on: ubuntu-latest
needs: [check,one]
if: |
always() && (needs.check.outputs.no_skip == 'true' || contains(fromJSON(needs.check.outputs.run_list), github.job))
steps:
- name: Run
run: echo ran ${{ github.job }}!
six:
runs-on: ubuntu-latest
needs: [check,two_again]
if: ${{ always() && (needs.check.outputs.no_skip == 'true' || contains(fromJSON(needs.check.outputs.run_list), github.job)) }}
steps:
- name: Run
run: echo ran ${{ github.job }}!