Skip to content

Normalize and align CD pipeline #564

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

Activity

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

    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