ci: Optimize staging builds with Docker (Linux) and caching (macOS)#659
ci: Optimize staging builds with Docker (Linux) and caching (macOS)#659
Conversation
Linux builds: - Use Docker container (coasys/ad4m-ci-linux) for all Linux jobs - Applies to: build-launcher-binary-linux, npm-publish, crates-publish - Eliminates ~15 setup steps per job macOS builds: - Swatinem/rust-cache for Cargo/target caching - pnpm caching via setup-node - Homebrew cache for protobuf/cmake - Go module caching Other: - Split matrix into separate platform-specific jobs - Fixed prerelease detection (*-* pattern) - Preserved all commented code (Apple signing, Windows builds, etc.) - Updated deprecated actions to v3
691040f to
73a3429
Compare
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| steps: | ||
| - uses: actions/checkout@v3 | ||
|
|
||
| - run: rustup target add wasm32-unknown-unknown |
There was a problem hiding this comment.
Is this not included in our Dockerimage?
There was a problem hiding this comment.
It is so we could remove it here.
Summary
Optimizes the staging publish workflow for faster CI runs. Test this on staging before applying to production.
Changes
Linux Builds → Docker Container
All Linux jobs now use
coasys/ad4m-ci-linux:build-launcher-binary-linuxnpm-publishcrates-publishEliminates ~15 setup steps per job (Rust, Go, Deno, Python, apt-get, pnpm, etc.)
macOS Builds → Aggressive Caching
Docker not available on GH Actions macOS, so using:
Swatinem/rust-cachefor Cargo/target (biggest win)setup-nodeOther
*-*catches0.11.2-dev.4)Workflow Size
475 lines → 146 lines (-70%)
Testing
Once merged to staging, the workflow will trigger automatically. We can verify:
After validation, apply the same changes to
publish.yml(production).