diff --git a/.github/workflows/build-and-run-node-test.yaml b/.github/workflows/build-and-run-node-test.yaml index abc246b3d..3e44ae6b2 100644 --- a/.github/workflows/build-and-run-node-test.yaml +++ b/.github/workflows/build-and-run-node-test.yaml @@ -10,16 +10,20 @@ jobs: run_tests: ${{ steps.filter.outputs.changes_detected }} steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: Check for relevant changes id: filter run: | - if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^(node/|crates/|pallets/|runtime/)"; then - echo "changes_detected=true" >> $GITHUB_ENV + ## If this is the first commit on a branch, then the default behaviour of github.event.before is to show the previous ref as + ## repeated zeroes, as the previous ref is null + if [ "${{ github.event.before }}" = "0000000000000000000000000000000000000000" ]; then + echo "changes_detected=true" >> $GITHUB_OUTPUT + elif git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -E "^(node/|crates/|pallets/|runtime/)"; then + echo "changes_detected=true" >> $GITHUB_OUTPUT else - echo "changes_detected=false" >> $GITHUB_ENV + echo "changes_detected=false" >> $GITHUB_OUTPUT fi - - name: Set output - run: echo "changes_detected=${{ env.changes_detected }}" >> $GITHUB_OUTPUT node-test: needs: code-paths-changed