Skip to content

Normalize and align CD pipeline #564

@nanotaboada

Description

@nanotaboada

Summary

Improve the CD pipeline: extract a dedicated test gate before deployment, add uv dependency caching, enable build provenance attestation, and tighten changelog generation.

Changes

Structure

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

Test job steps

  • Checkout repository
  • Set up Python
  • Set up uv — add enable-cache: true (dependency caching missing in CD, present in CI)
  • Install test dependencies
  • Run tests with pytest

Release job

  • 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
  • Add empty changelog guard: No new changes since $PREVIOUS_TAG when a previous tag exists, No changes (first release) otherwise
  • 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 excludes merge commits

Metadata

Metadata

Assignees

No one assigned

    Labels

    github actionsPull requests that update GitHub Actions code

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions