Skip to content

feat(ci): implement release-please for automated releases#434

Closed
kriscoleman wants to merge 1 commit into
mainfrom
feat/release-please
Closed

feat(ci): implement release-please for automated releases#434
kriscoleman wants to merge 1 commit into
mainfrom
feat/release-please

Conversation

@kriscoleman
Copy link
Copy Markdown
Member

feat(ci): implement release-please for automated releases

Summary

This PR automates the EKCO release process using release-please. Instead of manually pushing Git tags to trigger releases, the new workflow opens release PRs based on conventional commits, creates GitHub releases automatically, and builds/pushes the Docker image without manual intervention.

Changes

  • Added .github/workflows/release-please.yaml with two jobs:
    • release-please: Runs on every push to main, opens/updates release PRs using release-please-action@v4
    • build-and-push: Triggered only when a release is actually created, checks out the release tag, builds the Docker image with make docker-image, and pushes replicated/ekco:<tag> to DockerHub
  • Added release-please-config.json — configures the root package with release-type: simple and package-name: ekco
  • Added .release-please-manifest.json — seeded with the current version 0.28.13
  • Updated README.md release documentation to describe the new automated flow and how manual tag pushes still work as a fallback

Design Decision

The Docker build is integrated directly into the release-please workflow rather than relying on the existing release.yaml being triggered by the new tag. This is necessary because GitHub Actions tags created by the default GITHUB_TOKEN do not trigger other workflows — it is a platform limitation to prevent recursive runs. The existing release.yaml is intentionally kept so manual tag pushes still function as a fallback.

UAT

  1. Merge this PR to main
  2. Merge a subsequent PR with a conventional commit (e.g., feat: something or fix: something)
  3. Verify that the release-please workflow opens a release PR proposing the next version
  4. Merge the release PR and verify:
    • A GitHub release and Git tag are created
    • The Docker image replicated/ekco:<tag> is built and pushed

Adds release-please GitHub Actions workflow that:

- Opens release PRs on conventional commits to main

- Creates GitHub releases and tags when release PRs merge

- Builds and pushes Docker image automatically on release

Includes manifest/config files starting at current version 0.28.13.

Manual tag pushes still trigger the existing release.yaml workflow.
@kriscoleman kriscoleman requested a review from a team as a code owner May 11, 2026 19:08
@xavpaice
Copy link
Copy Markdown
Member

Question on this:

  • Do we really want to release every PR? Even if there are a bunch of Dependabot etc updates that could be grouped?
  • Has this approach been discussed and agreed with the team that 'owns' this repo?

@kriscoleman
Copy link
Copy Markdown
Member Author

kriscoleman commented May 12, 2026

Question on this:

* Do we really want to release every PR?  Even if there are a bunch of Dependabot etc updates that could be grouped?

* Has this approach been discussed and agreed with the team that 'owns' this repo?
  1. release-please handles this nicely, it doesn't continuously release what's landed to your default branch, it instead maintains "Release PRs". They are kept up-to-date as additional work is merged. When you're ready to tag and trigger a release, simply merge the release PR.

  2. I'll have a discussion with them!

@kriscoleman
Copy link
Copy Markdown
Member Author

closing as a different direction is being considered.

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.

2 participants