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