diff --git a/.github/workflows/fork-ci.yml b/.github/workflows/fork-ci.yml index 566a632036d..a58781e4e07 100644 --- a/.github/workflows/fork-ci.yml +++ b/.github/workflows/fork-ci.yml @@ -32,6 +32,12 @@ on: # integrationOverlays is empty: the overlays were drained into fork/dev at # cutover. Re-add bases here if one is ever registered again. pull_request: + # Explicit, because the default set (opened, synchronize, reopened) misses + # both ways a PR can become eligible without a new commit: being marked + # ready, and being retargeted onto a listed base. A PR retargeted from a + # branch this workflow does not watch would otherwise sit forever on + # required checks that can never report. + types: [opened, synchronize, reopened, ready_for_review, edited] branches: - fork/base - fork/tim @@ -58,6 +64,11 @@ concurrency: jobs: check: name: Check + # "edited" also fires for title and body edits, which must not spend a full + # CI run. github.event.changes.base is present only when the base changed. + if: >- + github.event_name != 'pull_request' || github.event.action != 'edited' || + github.event.changes.base != null runs-on: ubuntu-24.04 timeout-minutes: 10 steps: @@ -109,6 +120,11 @@ jobs: test: name: Test + # "edited" also fires for title and body edits, which must not spend a full + # CI run. github.event.changes.base is present only when the base changed. + if: >- + github.event_name != 'pull_request' || github.event.action != 'edited' || + github.event.changes.base != null runs-on: ubuntu-24.04 timeout-minutes: 10 steps: @@ -132,6 +148,11 @@ jobs: mobile_native_static_analysis: name: Mobile Native Static Analysis + # "edited" also fires for title and body edits, which must not spend a full + # CI run. github.event.changes.base is present only when the base changed. + if: >- + github.event_name != 'pull_request' || github.event.action != 'edited' || + github.event.changes.base != null runs-on: macos-15 timeout-minutes: 10 steps: @@ -170,6 +191,11 @@ jobs: release_smoke: name: Release Smoke + # "edited" also fires for title and body edits, which must not spend a full + # CI run. github.event.changes.base is present only when the base changed. + if: >- + github.event_name != 'pull_request' || github.event.action != 'edited' || + github.event.changes.base != null runs-on: ubuntu-24.04 timeout-minutes: 10 steps: