Repository navigation
Overhaul publishing workflows - #18
Merged
Merged
Conversation
- Add npm install step in CI workflow for packages with package.json - Add npm install in test_tier.sh for Node.js packages before running tests - Fixes "Cannot find module 'express'" and 'better-sqlite3' errors 🤖 Generated with [Claude Code](https://claude.com/claude-code)
These examples are in examples/reflux_demo/, not examples/ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
dart_node_mcp is primarily extension types with external methods and typedefs - no executable Dart code to instrument. Tests pass but coverage is N/A. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
dart_node_react_native is also primarily extension types with external methods - pure JS interop with no executable Dart code to instrument. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
… tests - Add build step for packages with build.sh (too_many_cooks needs to compile server to JS before tests can spawn it as subprocess) - Skip coverage for VM packages that spawn subprocesses (coverage can't instrument code running in separate process) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Excluded examples: - backend: needs server compiled and running - mobile: needs React Native setup - flutter_counter: needs Flutter SDK - too_many_cooks_vscode_extension: needs VSCode environment 🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Find release branch by name instead of head_branch (was returning 'main') - Add id-token permission for pub.dev OIDC auth - Verify prerequisite packages on pub.dev before publishing tier 2/3 - Skip already-published packages - Use fetch-depth: 0 to access all branches
MelbourneDeveloper
force-pushed
the
publishfixes
branch
from
December 13, 2025 07:37
40816a2 to
697dfcb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR;
Consolidate publishing workflows to eliminate duplication and implement proper tiered deployment with workflow chaining.
What Does This Do?
_publish-packages.ymlwith loop-based publishing (no duplication)publish-release.ymlthat validates main branch, creates release branch, and PRworkflow_runtriggers so tiers chain automatically after predecessor succeedsBrief Details?
Before: 3 bloated workflows (50-134 lines each) with repeated publish steps per package
After:
publish-release.yml- Tag trigger, validates main, creates release branch + PR_publish-packages.yml- Reusable, loop-based publishingpublish-tier1.yml(19 lines) - workflow_run from Releasepublish-tier2.yml(21 lines) - workflow_run from Tier 1, 20 min env waitpublish-tier3.yml(21 lines) - workflow_run from Tier 2, 20 min env waitFlow:
How Do The Tests Prove The Change Works?
Workflow syntax validated. Requires GitHub Environment configuration:
pub.dev- no wait timerpub.dev-tier2- 20 minute wait timerpub.dev-tier3- 20 minute wait timer