Skip to content

ci: split workflows, add audit, cross‑platform builds & auto‑draft release#6

Merged
hyperfinitism merged 1 commit intomainfrom
ci/split-ci-pipeline
Jul 20, 2025
Merged

ci: split workflows, add audit, cross‑platform builds & auto‑draft release#6
hyperfinitism merged 1 commit intomainfrom
ci/split-ci-pipeline

Conversation

@hyperfinitism
Copy link
Owner

Closes #5

What's changed

1. Monolithic ci.yml → five focused workflows

File On PR On push (main) Scheduled Job(s)
lint.yml ✅️ ✅️ rustfmt, clippy
test.yml ✅️ ✅️ debug cargo test (matrix)
release-test.yml ✅️ release cargo test (matrix)
release-build.yml ✅️ (on tag v*) release builds + package binaries + upload artefacts + draft Github release
audit.yml ✅️ ✅️ ✅️ (weekly) cargo‑audit

2. Cross-platform support

test.yml, release-test.yml and release-build.yml now cover four targets:

Runner OS Processor Build Target
ubuntu-latest Linux x64 x86_64-unknown-linux-gnu
macos-13 macOS x64 (Intel) x86_64-apple-darwin
macos-latest macOS arm64 (Apple Silicon) aarch64-apple-darwin
windows-latest Windows x64 x86_64-pc-windows-msvc

See also Choosing the runner for a job - Github Docs.

3. Reusable release-packaging action

.github/actions/package‑binaries/
  ├─ action.yml   (composite wrapper)
  ├─ package.sh   (Linux / macOS)
  └─ package.ps1  (Windows)

4. Smarter cache management

  • Switch from actions/cache@v3 to Swatinem/rust-cache@v2
  • Isolate pull_request caches from main caches

Tests

  • Temporarily enable tag triggers (now removed)
  • Push temporal version tag (now removed)
  • All workflows worked well as intended

* Replace monolithic ci.yml with five focused workflows
  - lint.yml            · Rustfmt & Clippy
  - test.yml            · debug tests
  - release‑test.yml    · release tests
  - release‑build.yml   · release builds + upload artefacts + draft release
  - audit.yml           · cargo‑audit vulnerability scan

* Support cross-platform test + build + release
  - Linux x86_64
  - macOS (Intel & Apple Silicon)
  - Windows x86_64

* Reusable release-packaging action
  .github/actions/package‑binaries/
    ├─ action.yml (composite wrapper)
    ├─ package.sh   (Linux / macOS)
    └─ package.ps1  (Windows)

* Smart cache management
  - Switch from actions/cache@v3 to Swatinem/rust-cache@v2
  - Isolate pull_request caches from main caches
@hyperfinitism hyperfinitism self-assigned this Jul 20, 2025
@hyperfinitism hyperfinitism merged commit 867277d into main Jul 20, 2025
7 checks passed
@hyperfinitism hyperfinitism added the enhancement New feature or request label Jul 20, 2025
@hyperfinitism hyperfinitism changed the title CI: split workflows, add audit, cross‑platform builds & auto‑draft release ci: split workflows, add audit, cross‑platform builds & auto‑draft release Jul 24, 2025
@hyperfinitism hyperfinitism deleted the ci/split-ci-pipeline branch October 3, 2025 17:35
@hyperfinitism hyperfinitism added the ci/cd CI/CD related items label Oct 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd CI/CD related items enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI: split workflows, add audit, cross‑platform builds & auto‑draft release

1 participant