Skip to content

Adding GHCR to CI/CD Release Workflow & further improvements#32

Merged
oschwartz10612 merged 4 commits intofosrl:mainfrom
marcschaeferger:gh-action
Oct 20, 2025
Merged

Adding GHCR to CI/CD Release Workflow & further improvements#32
oschwartz10612 merged 4 commits intofosrl:mainfrom
marcschaeferger:gh-action

Conversation

@marcschaeferger
Copy link
Contributor

Community Contribution License Agreement

By creating this pull request, I grant the project maintainers an unlimited,
perpetual license to use, modify, and redistribute these contributions under any terms they
choose, including both the AGPLv3 and the Fossorial Commercial license terms. I
represent that I have the right to grant this license for all contributed content.

Description Copilot

This pull request improves the security, reliability, and transparency of the CI/CD and test workflows by pinning all GitHub Actions to specific commit SHAs, adding explicit permissions, and enhancing the release process with image signing and mirroring. The CI/CD pipeline now includes steps for dual-signing container images, mirroring images to GHCR, updating version information in main.go, and installing required tools. The test workflow also receives minor security improvements.

CI/CD Pipeline Enhancements:

  • All actions in .github/workflows/cicd.yml are now pinned to specific commit SHAs to minimize supply-chain risks.
  • The workflow now dual-signs container images (both keyless/OIDC and key-based) and verifies signatures for both Docker Hub and GHCR images using Cosign.
  • Images are mirrored from Docker Hub to GHCR using Skopeo, ensuring availability and enabling signature verification.
  • The pipeline updates the version in main.go based on the pushed tag, ensuring version consistency in release builds.

Security and Permissions:

  • Explicit permissions are set for both CI/CD (cicd.yml) and test (test.yml) workflows, limiting access to only required scopes. [1] [2]

Test Workflow Improvements:

  • All actions in .github/workflows/test.yml are pinned to specific commit SHAs, improving supply-chain security.

How to test?

- Pin actions/checkout to SHA for v5.0.0
- Pin docker/setup-qemu-action to SHA for v3.6.0
- Pin docker/setup-buildx-action to SHA for v3.11.1
- Pin docker/login-action to SHA for v3.6.0
- Pin actions/setup-go to SHA for v6.0.0
- Pin actions/upload-artifact to SHA for v4.6.2
- mirror images from Docker Hub to GHCR using skopeo (preserves multi-arch manifests)
- login to GHCR via docker/login-action for signing/pushing
- install cosign and perform dual signing: keyless (OIDC) + key-based; verify signatures
- add required permissions for id-token/packages and reference necessary secrets
@oschwartz10612 oschwartz10612 merged commit 08341b2 into fosrl:main Oct 20, 2025
1 check passed
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