Skip to content

fix(ci): add always() to publish_legacy_aiox_core so scoped packages=aiox-core dispatches actually run - #828

Open
Pedrovaleriolopez wants to merge 1 commit into
mainfrom
fix/npm-publish-legacy-job-always-skip-propagation
Open

fix(ci): add always() to publish_legacy_aiox_core so scoped packages=aiox-core dispatches actually run#828
Pedrovaleriolopez wants to merge 1 commit into
mainfrom
fix/npm-publish-legacy-job-always-skip-propagation

Conversation

@Pedrovaleriolopez

Copy link
Copy Markdown
Contributor

Why

Bug 3 from #827: publish_legacy_aiox_core's if: explicitly tries to allow needs.publish.result == 'skipped' (the expected state when a scoped packages=aiox-core dispatch, without core, causes publish's own if: to evaluate false). But GitHub Actions propagates a skipped needs job to dependents by default, regardless of a custom if: expression — the only way to opt out is to start the expression with always(). Without it, the "skipped is OK" branch of the condition was dead code: a scoped packages=aiox-core-only dispatch could never actually run this job.

Verified live in two separate runs: #31897480528 and #31898069540 — both packages=aiox-core-only dispatches, both show publish_legacy_aiox_core: skipped.

What

-    if: ${{ contains(format(',{0},', needs.build.outputs.packages), ',aiox-core,') && (needs.publish.result == 'success' || needs.publish.result == 'skipped') }}
+    if: ${{ always() && needs.test.result == 'success' && needs.build.result == 'success' && contains(format(',{0},', needs.build.outputs.packages), ',aiox-core,') && (needs.publish.result == 'success' || needs.publish.result == 'skipped') }}

always() also removes the implicit failure-propagation default for every needs entry, not just publish — so the added needs.test.result == 'success' && needs.build.result == 'success' checks are load-bearing, not decorative. Without them this job would now run even when test or build failed.

Blast radius

No behavior change intended for the packages=all / packages=core paths already exercised in production (#31898409032, which correctly ran publish_legacy_aiox_core and published aiox-core@5.4.0 because publish itself was not skipped there) — this only changes what happens for the previously-dead packages=aiox-core-only input.

Not in scope

Sibling jobs in this workflow (e.g. smoke_test_exports) may share the same class of skip-propagation gap — not audited/fixed here, flagged in #827 for a separate pass.

Not urgent — no --admin, waiting for full green CI before merge, per team decision after today's release incident.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5 noreply@anthropic.com

…aiox-core dispatches actually run

Bug 3 from issue #827: publish_legacy_aiox_core's `if:` explicitly tries
to allow `needs.publish.result == 'skipped'` (the expected state when a
scoped `packages=aiox-core` dispatch, without `core`, causes `publish`'s
own `if:` to evaluate false). But GitHub Actions propagates a skipped
`needs` job to dependents by default, REGARDLESS of a custom `if:`
expression — the only way to opt out is to start the expression with
`always()`. Without it, the "skipped is OK" branch of the condition was
dead code: a scoped `packages=aiox-core`-only dispatch could never
actually run this job, verified live in runs #31897480528 and
#31898069540 (both show `publish_legacy_aiox_core: skipped`).

Adding `always()` also removes the *implicit* failure-propagation
default for every `needs` entry, not just `publish` — so the explicit
`needs.test.result == 'success' && needs.build.result == 'success'`
checks are load-bearing here, not decorative. Without them this job
would now run even when `test` or `build` failed.

No behavior change intended for the `packages=all` / `packages=core`
paths already exercised in production (run #31898409032, which
correctly ran `publish_legacy_aiox_core` and published `aiox-core`
because `publish` itself was NOT skipped there) — this only changes
what happens for the previously-dead `packages=aiox-core`-only input.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
aiox-core Ready Ready Preview Aug 15, 2026 5:40pm

Request Review

@github-actions github-actions Bot added area: docs Documentation (docs/) area: devops CI/CD, GitHub Actions (.github/) labels Aug 15, 2026
@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 42 minutes

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 434cdf53-2a92-47ee-a3c7-e4c322b4bc2f

📥 Commits

Reviewing files that changed from the base of the PR and between 9d59eba and 20190d3.

📒 Files selected for processing (1)
  • .github/workflows/npm-publish.yml

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

📊 Coverage Report

Coverage report not available

📈 Full coverage report available in Codecov


Generated by PR Automation (Story 6.1)

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

Labels

area: devops CI/CD, GitHub Actions (.github/) area: docs Documentation (docs/)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant