Skip to content

chore(ci): 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