Skip to content

Fix skipped post-publish jobs in release mode#57479

Closed
cipolleschi wants to merge 1 commit into
mainfrom
cipolleschi/fix-skipped-release-jobs
Closed

Fix skipped post-publish jobs in release mode#57479
cipolleschi wants to merge 1 commit into
mainfrom
cipolleschi/fix-skipped-release-jobs

Conversation

@cipolleschi

@cipolleschi cipolleschi commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

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. success() 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, which poisons 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 (see its existing if: and comment). This PR applies the same, proven pattern to the four downstream jobs.

Fix

Replace each bare if: with always() plus explicit result checks so the jobs run whenever the release publish actually succeeds, and only in release mode:

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.)

Changelog:

[Internal] -

Notes

  • This bug is structural — it affects every release, not just rc.0, since build_android is always skipped in release mode.
  • A companion PR backports this fix to 0.87-stable.

Test plan

  • if expressions unchanged in intent: run only for a successful release publish, skip for nightly/bumped-packages.
  • YAML validated locally.
  • Verify on the next release that post_publish, generate_changelog, bump_podfile_lock, and create_draft_release all 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
@meta-codesync

meta-codesync Bot commented Jul 8, 2026

Copy link
Copy Markdown

@cipolleschi has imported this pull request. If you are a Meta employee, you can view this in D111035339.

@cortinico cortinico left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review automatically exported from Phabricator review in Meta.

@meta-codesync meta-codesync Bot closed this in c080619 Jul 8, 2026
@meta-codesync meta-codesync Bot added the Merged This PR has been merged. label Jul 8, 2026
@meta-codesync

meta-codesync Bot commented Jul 8, 2026

Copy link
Copy Markdown

@cipolleschi merged this pull request in c080619.

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. Merged This PR has been merged. p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants