blob: 374d52d238adfa375d8bddea52d74078195a098f [file] [edit]
name: 'Wait for Engine Build'
description: 'Wait for an engine build and redirect engine.version if engine files changed'
inputs:
github-token:
description: 'GitHub token'
required: true
check-name:
description: 'The name of the check to wait on'
required: false
default: 'Linux linux_host_engine'
check-regexp:
description: 'Filter checks using regex pattern'
required: false
default: ''
runs:
using: "composite"
steps:
- name: Check Engine Changes
id: check_engine
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: |
# 1. Determine local base tracking SHA
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" ] && [ "$PUSH_BEFORE_SHA" != "0000000000000000000000000000000000000000" ]; then
BASE_REF="$PUSH_BEFORE_SHA"
else
BASE_REF="origin/master"
fi
echo "Comparing against base SHA: $BASE_REF"
# 2. Get the changed files using the helper script
CHANGED_FILES=$(.github/scripts/git_files_changed.sh "$BASE_REF")
echo "Changed files in this branch:"
echo "$CHANGED_FILES"
# 3. Check if any file matches engine pattern using the helper script:
if [ "$(printf '%s\n' "$CHANGED_FILES" | .github/scripts/did_engine_change.sh)" = "true" ]; then
echo "Engine file changed - forced to wait for check-name: '${{ inputs.check-name }}', check-regexp: '${{ inputs.check-regexp }}'"
echo "changed=true" >> "$GITHUB_OUTPUT"
else
echo "changed=false" >> "$GITHUB_OUTPUT"
fi
# Note: Use the Cocoon wait-for-tests action to poll the Cocoon API.
- name: Wait for test check-in
if: steps.check_engine.outputs.changed == 'true' && env.ACT != 'true'
uses: flutter/cocoon/packages/wait_for_tests@c82f779e201b2d22f43b531268cfbd2ce4fbd4ab
with:
sha: ${{ github.event.pull_request.head.sha || github.sha }}
repo: ${{ github.repository }}
required-tests: ${{ inputs.check-name }}
- name: Redirect engine.version
if: steps.check_engine.outputs.changed == 'true' && github.event_name == 'pull_request'
shell: bash
run: |
echo "FLUTTER_REALM=flutter_archives_v2" >> $GITHUB_ENV
echo "FLUTTER_PREBUILT_ENGINE_VERSION=${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV