| name: 'Has Engine Changes' | |
| description: 'Checks if there are any engine changes in the current branch' | |
| outputs: | |
| changed: | |
| description: "Returns 'true' if there are engine changes, 'false' otherwise" | |
| value: ${{ steps.check.outputs.changed }} | |
| runs: | |
| using: "composite" | |
| steps: | |
| - name: Check Engine Changes | |
| id: check | |
| shell: bash | |
| env: | |
| EVENT_NAME: ${{ github.event_name }} | |
| PR_BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
| MERGE_GROUP_BASE_SHA: ${{ github.event.merge_group.base_sha }} | |
| PUSH_BEFORE_SHA: ${{ github.event.before }} | |
| run: | | |
| EMPTY_SHA="0000000000000000000000000000000000000000" | |
| if [ "$EVENT_NAME" = "pull_request" ]; then | |
| BASE_REF="$PR_BASE_SHA" | |
| elif [ "$EVENT_NAME" = "merge_group" ]; then | |
| BASE_REF="$MERGE_GROUP_BASE_SHA" | |
| elif [ "$EVENT_NAME" = "push" ] && [ -n "$PUSH_BEFORE_SHA" ] && [ "$PUSH_BEFORE_SHA" != "$EMPTY_SHA" ]; then | |
| BASE_REF="$PUSH_BEFORE_SHA" | |
| else | |
| if git show-ref --verify --quiet refs/remotes/upstream/master; then | |
| BASE_REF="upstream/master" | |
| else | |
| BASE_REF="origin/master" | |
| fi | |
| fi | |
| echo "Comparing against base SHA: $BASE_REF" | |
| CHANGED_FILES=$(.github/scripts/git_files_changed.sh "$BASE_REF") | |
| echo "Changed files in this branch:" | |
| echo "$CHANGED_FILES" | |
| if [ "$(printf '%s\n' "$CHANGED_FILES" | .github/scripts/did_engine_change.sh)" = "true" ]; then | |
| echo "Engine files changed." | |
| echo "changed=true" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "No engine files changed." | |
| echo "changed=false" >> "$GITHUB_OUTPUT" | |
| fi |