Skip to content

[0.87] Fix skipped post-publish jobs in release mode#57480

Open
cipolleschi wants to merge 1 commit into
0.87-stablefrom
cipolleschi/fix-skipped-release-jobs-087
Open

[0.87] Fix skipped post-publish jobs in release mode#57480
cipolleschi wants to merge 1 commit into
0.87-stablefrom
cipolleschi/fix-skipped-release-jobs-087

Conversation

@cipolleschi

Copy link
Copy Markdown
Contributor

Summary

Backport of #57479 to 0.87-stable.

During the 0.87.0-rc.0 release, the npm packages published successfully (publish_react_native ✓) but every release-only downstream job was skipped: post_publish, generate_changelog, bump_podfile_lock, and create_draft_release. As a result the community template was not published, rn-diff-purge was not triggered, npm/Maven verification did not run, the changelog was not generated, Podfile.lock was not bumped, and no draft GitHub release was created.

Root cause

These four jobs gate on a bare condition:

if: needs.determine_mode.outputs.mode == 'release'

Because that expression contains no status-check function, GitHub Actions implicitly ANDs a success() gate, which evaluates to false when there is a skipped job in the dependency graph. In release mode, build_android (a dependency of publish_react_native) is always skipped, poisoning the implicit success() for these downstream jobs — so they skip even after a fully successful publish.

publish_react_native already works around exactly this with always() + explicit .result == 'success' checks. This PR applies the same pattern to the four downstream jobs.

Fix

if: |
  always() &&
  needs.determine_mode.result == 'success' &&
  needs.publish_react_native.result == 'success' &&
  needs.determine_mode.outputs.mode == 'release'

(create_draft_release checks generate_changelog and set_hermes_version instead, matching its needs.)

Test plan

  • YAML validated locally.
  • Verify on the next 0.87 release that the four downstream jobs run after publish_react_native succeeds.

The post_publish, generate_changelog, bump_podfile_lock and
create_draft_release jobs are release-only and gate on a bare
`if: needs.determine_mode.outputs.mode == 'release'`. Because that
expression has no status-check function, GitHub implicitly ANDs a
`success()` gate, which evaluates to false when a job in the dependency
graph is skipped. In release mode `build_android` (a dependency of
`publish_react_native`) is always skipped, so these four downstream jobs
were skipped even after a successful publish.

`publish_react_native` already works around this with `always()` plus
explicit `.result == 'success'` checks; apply the same pattern to the
four downstream jobs so they run whenever the release publish succeeds.
@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 8, 2026
@facebook-github-tools facebook-github-tools Bot added p: Facebook Partner: Facebook Partner labels Jul 8, 2026
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

Caution

Missing Changelog

Please add a Changelog to your PR description. See Changelog format

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner Pick Request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant