Skip to content

Commit

Permalink
feat: omit triggers for true (#7)
Browse files Browse the repository at this point in the history
  • Loading branch information
DerekRoberts authored Feb 27, 2024
1 parent 2c4c626 commit 0d19302
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 9 deletions.
25 changes: 19 additions & 6 deletions .github/workflows/pr-open.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,28 @@ jobs:
with:
triggers: ('path/to/nowhere')

test-omitted:
name: Test for Omitted
outputs:
triggered: ${{ steps.test.outputs.triggered }}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: ./
id: test

results:
name: Results
needs: [test-true, test-false]
needs: [test-true, test-false, test-omitted]
runs-on: ubuntu-22.04
steps:
- run: |
echo "needs.test-true.outputs.triggered: ${{ needs.test-true.outputs.triggered }}"
echo "needs.test-false.outputs.triggered: ${{ needs.test-false.outputs.triggered }}"
- if: needs.test-true.outputs.triggered != 'true' || needs.test-false.outputs.triggered != 'false'
- if:
needs.test-true.outputs.triggered != 'true' ||
needs.test-false.outputs.triggered != 'false' ||
needs.test-omitted.outputs.triggered != 'true'
run: |
# Explain any errors
echo "needs.test-true.outputs.triggered: ${{ needs.test-true.outputs.triggered }} - expected: true"
echo "needs.test-false.outputs.triggered: ${{ needs.test-false.outputs.triggered }} - expected: false"
echo "needs.test-omitted.outputs.triggered: ${{ needs.test-false.outputs.triggered }} - expected: true"
exit 1
15 changes: 12 additions & 3 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ branding:

inputs:
### Required
# Nothing!

### Typical / recommended
triggers:
description: Paths used to trigger an event; e.g. ('./backend/' './frontend/)
required: true
description: Paths used to trigger an event; e.g. ('./backend/' './frontend/); always trigger if omitted

### Usually a bad idea / not recommended
diff_branch:
Expand All @@ -29,6 +31,13 @@ runs:
shell: bash
id: diff
run: |
# Always fire if triggers are omitted
if [ -z "${{ inputs.triggers }}" ]; then
echo "Always fire when triggers are omitted!"
echo "triggered=true" >> $GITHUB_OUTPUT
exit 0
fi
# Build if changed files (git diff) match triggers
TRIGGERS=${{ inputs.triggers }}
git fetch origin ${{ inputs.diff_branch }}
Expand All @@ -45,5 +54,5 @@ runs:
done < <(git diff origin/${{ inputs.diff_branch }} --name-only)
# If at this point, no trigger has fired
echo "Container build not required"
echo "Triggers have not fired"
echo "triggered=false" >> $GITHUB_OUTPUT

0 comments on commit 0d19302

Please sign in to comment.