Skip to content

fix(ci): reproducible builds and release version validation - #376

Open
Coredevjay wants to merge 1 commit into
Trellis-Ecosystem:masterfrom
Coredevjay:fix/316-317-318-320-ci-makefile-improvements
Open

fix(ci): reproducible builds and release version validation#376
Coredevjay wants to merge 1 commit into
Trellis-Ecosystem:masterfrom
Coredevjay:fix/316-317-318-320-ci-makefile-improvements

Conversation

@Coredevjay

Copy link
Copy Markdown

Summary

  • Add --frozen to all cargo build/test/clippy commands in the Makefile, contract-ci.yml, and release.yml so builds fail on a stale Cargo.lock instead of silently updating it.
  • Replace npm install with npm ci in the Makefile's build-frontend, test-frontend, and lint-frontend targets for reproducible, lockfile-exact installs.
  • Add make fmt, make typecheck-frontend, and make setup targets.
  • Add a verify-version job to the release workflow that compares the pushed git tag against cli/trellis_cli/Cargo.toml, contracts/trellis_core/Cargo.toml, and frontend/package.json versions, and fails the release on any mismatch before the build jobs run.

Closes #316
Closes #317
Closes #318
Closes #320

Validation performed

  • make -n <target> dry-run for every changed/new Makefile target to confirm correct command expansion.
  • YAML syntax validated for release.yml and contract-ci.yml.
  • Confirmed Cargo.lock and frontend/package-lock.json are committed and in sync with current manifest versions (0.1.0 across CLI, contract, and frontend), so --frozen won't break existing CI.
  • Note: cargo is not available in this sandbox, so cargo build --frozen itself could not be executed locally; CI (contract-ci.yml) will validate it on push.

- Add --frozen to all cargo build/test/clippy commands in the Makefile,
  contract-ci.yml, and release.yml so CI/local builds fail if Cargo.lock
  is out of date instead of silently regenerating it.
- Replace npm install with npm ci in Makefile frontend targets for
  lockfile-exact dependency installs.
- Add make fmt, make typecheck-frontend, and make setup targets.
- Add a verify-version job to the release workflow that fails the release
  if the pushed tag doesn't match Cargo.toml (CLI/contract) or
  frontend/package.json versions.

Closes Trellis-Ecosystem#316
Closes Trellis-Ecosystem#317
Closes Trellis-Ecosystem#318
Closes Trellis-Ecosystem#320
@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@Coredevjay Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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

Labels

None yet

Projects

None yet

1 participant