Skip to content

feat: add automated release pipeline with release-please#58

Merged
rubenhensen merged 1 commit into
mainfrom
feat/release-pipeline
Mar 31, 2026
Merged

feat: add automated release pipeline with release-please#58
rubenhensen merged 1 commit into
mainfrom
feat/release-pipeline

Conversation

@rubenhensen

Copy link
Copy Markdown
Contributor

Summary

  • Replace standalone Docker build workflow with combined CI pipeline using release-please for automated version bumping, changelog generation, and GitHub releases
  • Build Docker images on native multi-platform runners (amd64 + arm64) instead of QEMU emulation, using the digest-based manifest pattern from the cryptify repository
  • Move SvelteKit frontend build into the Dockerfile (new Node.js stage) so the Docker build is self-contained and works with per-platform native runners
  • Add x-release-please-version marker to .env so VITE_APP_VERSION stays in sync with releases
  • Align package.json version to 1.0.0 to match the deployed .env version

How it works

On push to main, the pipeline:

  1. release-please checks conventional commits and either creates/updates a release PR, or (when a release PR is merged) creates a GitHub release + tag
  2. build jobs run on native amd64/arm64 runners, pushing images by digest
  3. finalize merges digests into a multi-platform manifest with tags:
    • edge on every push to main
    • pr-123 on pull requests
    • 1.2.3 when release-please creates a release

This mirrors the CI pattern used in cryptify. release-please was chosen over release-plz (Rust-specific) as the standard equivalent for Node.js projects, following the same conventional-commits + release-PR workflow.

Closes #57

Test plan

  • Verify the CI workflow runs successfully on this PR (build jobs for amd64/arm64)
  • Merge to main and confirm edge tag is pushed to GHCR
  • Verify release-please creates a release PR after merge
  • Merge the release PR and confirm a versioned Docker image tag appears

Replace the standalone Docker build workflow with a combined CI pipeline
that uses release-please for automated version bumping, changelog
generation, and GitHub releases. Docker images are built on native
multi-platform runners (amd64 + arm64) and tagged with semantic versions
on release, matching the pattern used in the cryptify repository.

Closes #57
@rubenhensen rubenhensen merged commit 7fe7d3e into main Mar 31, 2026
3 checks passed
@rubenhensen rubenhensen deleted the feat/release-pipeline branch March 31, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Set up automated release pipeline

1 participant