Skip to content

chore(ci): normalize and align CD pipeline #314

Description

@nanotaboada

Summary

Improve the CD pipeline: add multi-platform image support (amd64 + arm64), enable build provenance attestation, and tighten changelog generation and release metadata.

Changes

Changelog generation

  • Add --no-merges flag to git log
  • Add (%h) short hash to commit format (currently "- %s", should be "- %s (%h)")
  • Add empty changelog guard (No new changes since $PREVIOUS_TAG)

GitHub Release step

  • Set generate_release_notes: false → true
  • Add explicit draft: false
  • Add explicit prerelease: false

Docker

  • Set provenance: false → provenance: mode=max
  • Add actions/attest-build-provenance step after image push
  • Add id-token: write permission to release job
  • Drop the Set image name step; use ${{ github.repository }} directly (repo name is already lowercase)

Acceptance Criteria

  • CD triggers on v*.*.*-* tags and completes successfully
  • Docker image published for both linux/amd64 and linux/arm64
  • Build provenance attestation appears on the GitHub Release
  • Changelog excludes merge commits and includes short hashes
  • GitHub Release is not a draft and not a pre-release

Activity

  1. coderabbitai commented on Apr 11, 2026

    @coderabbitai
    🔗 Related PRs

    #161 - chore(ci): improve Java CI workflow [merged]
    #195 - feat: add multi-stage Dockerfile for building and running app [merged]
    #287 - ci(release): implement named releases with tag-based deployment (#252) [merged]
    #297 - docs: normalize README structure and add RELEASES.md [merged]
    #313 - ci(cd): verify tag commit is reachable from master (#292) [closed]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. added 2 commits that reference this issue on Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgithub actionsPull requests that update GitHub Actions code

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions