Skip to content

Normalize and align CD pipeline #465

@nanotaboada

Description

@nanotaboada

Summary

Improve the CD pipeline: extract a dedicated test gate before deployment, add multi-platform image support (amd64 + arm64), enable build provenance attestation, and tighten changelog generation.

Changes

Structure

  • Extract a dedicated test job (currently tests run inside release)
  • Add needs: test to the release job
  • Add id-token: write and attestations: write permissions to release job

Test job steps

  • Checkout repository
  • Set up .NET
  • Restore dependencies
  • Build (Release configuration)
  • Run tests

Release job

  • Add linux/arm64 to platforms (currently linux/amd64 only)
  • Set provenance: falseprovenance: mode=max
  • Add actions/attest-build-provenance@v4.1.0 step after image push with push-to-registry: true
  • Add --no-merges flag to changelog git log command
  • Add empty changelog guard: No new changes since $PREVIOUS_TAG when a previous tag exists, No changes (first release) otherwise
  • Remove intermediate changelog.txt file write (unused outside the step)
  • Drop Quick Start section from release body (belongs in README)

Acceptance Criteria

  • CD triggers on v*.*.*-* tags and completes successfully
  • test job fails fast if tests fail before any image is pushed
  • Docker image published for both linux/amd64 and linux/arm64
  • Build provenance attestation appears on the GitHub Release
  • Changelog in release body excludes merge commits

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