blob: cb51769b2baca2e8cacaab0d7790e9c17fa71d8e [file]
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: Fetch upstream master (if not flutter/flutter)
if: github.repository != 'flutter/flutter' && !env.ACT
shell: bash
run: |
if ! git remote get-url upstream >/dev/null 2>&1; then
git remote add upstream https://github.com/flutter/flutter.git
fi
git fetch --no-tags upstream master:refs/remotes/upstream/master
- name: Check Engine Changes
id: check
shell: bash
env:
EVENT_NAME: ${{ github.event_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
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
if [ "$GITHUB_REPOSITORY" != "flutter/flutter" ] && \
git show-ref --verify --quiet refs/remotes/upstream/master && \
git merge-base --is-ancestor "$PR_BASE_SHA" refs/remotes/upstream/master 2>/dev/null; then
BASE_REF="refs/remotes/upstream/master"
else
BASE_REF="$PR_BASE_SHA"
fi
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