Skip to content

Migrate CI/CD from CircleCI to GitHub Actions#175

Open
fabiocicerchia wants to merge 1 commit intomainfrom
claude/circleci-to-github-actions-POeuN
Open

Migrate CI/CD from CircleCI to GitHub Actions#175
fabiocicerchia wants to merge 1 commit intomainfrom
claude/circleci-to-github-actions-POeuN

Conversation

@fabiocicerchia
Copy link
Copy Markdown
Owner

Summary

This PR migrates the project's continuous integration and continuous deployment (CI/CD) pipeline from CircleCI to GitHub Actions. Two new workflow files have been added to replace the existing CircleCI configuration.

Key Changes

  • builds.yml: Main workflow that runs on every push to any branch (except tags). Handles:

    • Docker image building for 6 distributions (almalinux, alpine, amazonlinux, debian, fedora, ubuntu) across 2 architectures (amd64, arm64)
    • Image testing and vulnerability scanning with Trivy
    • Image signing with Cosign and SBOM generation with Syft
    • GeoIP MaxMind database caching
    • Package building and testing
    • Multi-architecture manifest bundling (on main branch only)
    • Metadata generation and auto-commit
    • Release creation
  • nightly.yml: Scheduled workflow that runs daily at 00:00 UTC and on manual trigger. Performs:

    • Version updates and PR generation
    • Release creation without requiring build artifacts

Notable Implementation Details

  • Uses matrix strategy to parallelize builds across 12 combinations (6 distros × 2 architectures)
  • Implements artifact caching for GeoIP databases to optimize build times
  • Includes security scanning as a build gate on the main branch
  • Separates concerns into distinct jobs with proper dependency ordering (docker → package → docker-bundle → metadata → release)
  • Leverages GitHub Actions' native artifact upload/download for inter-job communication
  • Maintains feature parity with the original CircleCI configuration including tool versions (Trivy v0.69.3, Cosign v3.0.5, Syft v1.42.3)

https://claude.ai/code/session_01PDdn6XVtM3KBTDAQfhoJDt

Migrate the two CircleCI workflows (builds + nightly) to GitHub Actions:

- builds.yml: Full CI pipeline triggered on push with docker build/test,
  package build/test, multi-arch bundle, metadata, and release jobs
- nightly.yml: Scheduled daily release job with manual dispatch support

Uses matrix strategy for 6 distros x 2 architectures (amd64/arm64),
GitHub-hosted ARM runners, actions/cache for GeoIP DB, and
actions/upload-artifact for inter-job data passing.

https://claude.ai/code/session_01PDdn6XVtM3KBTDAQfhoJDt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants