Bumps the ci group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action). Updates `actions/checkout` from 3.6.0 to 4.0.0 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](f43a0e5ff2...3df4ab11eb) Updates `actions/upload-artifact` from 3.1.2 to 3.1.3 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](0b7f8abb15...a8a3f3ad30) Updates `goreleaser/goreleaser-action` from 4.4.0 to 4.6.0 - [Release notes](https://github.com/goreleaser/goreleaser-action/releases) - [Commits](3fa32b8bb5...5fdedb94ab) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major dependency-group: ci - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch dependency-group: ci - dependency-name: goreleaser/goreleaser-action dependency-type: direct:production update-type: version-update:semver-minor dependency-group: ci ... Signed-off-by: dependabot[bot] <support@github.com>
Flux GitHub Workflows
End-to-end Testing
The e2e workflows run a series of tests to ensure that the Flux CLI and the GitOps Toolkit controllers work well all together. The tests are written in Go, Bash, Make and Terraform.
| Workflow | Jobs | Runner | Role |
|---|---|---|---|
| e2e.yaml | e2e-amd64-kubernetes | GitHub Ubuntu | integration testing with Kubernetes Kind |
| e2e-arm64.yaml | e2e-arm64-kubernetes | Equinix Ubuntu | integration testing with Kubernetes Kind |
| e2e-bootstrap.yaml | e2e-boostrap-github | GitHub Ubuntu | integration testing with GitHub API |
| e2e-azure.yaml | e2e-amd64-aks | GitHub Ubuntu | integration testing with Azure API |
| scan.yaml | scan-fossa | GitHub Ubuntu | license scanning |
| scan.yaml | scan-snyk | GitHub Ubuntu | vulnerability scanning |
| scan.yaml | scan-codeql | GitHub Ubuntu | vulnerability scanning |
Components Update
The components update workflow scans the GitOps Toolkit controller repositories for new releases, amd when it finds a new controller version, the workflow performs the following steps:
- Updates the controller API package version in
go.mod. - Patches the controller CRDs version in the
manifests/crdsoverlay. - Patches the controller Deployment version in
manifests/basesoverlay. - Opens a Pull Request against the
mainbranch. - Triggers the e2e test suite to run for the opened PR.
| Workflow | Jobs | Runner | Role |
|---|---|---|---|
| update.yaml | update-components | GitHub Ubuntu | update the GitOps Toolkit APIs and controllers |
Release
The release workflow is triggered by a semver Git tag and performs the following steps:
- Generates the Flux install manifests (YAML).
- Generates the OpenAPI validation schemas for the GitOps Toolkit CRDs (JSON).
- Generates a Software Bill of Materials (SPDX JSON).
- Builds the Flux CLI binaries and the multi-arch container images.
- Pushes the container images to GitHub Container Registry and DockerHub.
- Signs the sbom, the binaries checksum and the container images with Cosign and GitHub OIDC.
- Uploads the sbom, binaries, checksums and install manifests to GitHub Releases.
- Pushes the install manifests as OCI artifacts to GitHub Container Registry and DockerHub.
- Signs the OCI artifacts with Cosign and GitHub OIDC.
| Workflow | Jobs | Runner | Role |
|---|---|---|---|
| release.yaml | release-flux-cli | GitHub Ubuntu | build, push and sign the CLI release artifacts |
| release.yaml | release-flux-manifests | GitHub Ubuntu | build, push and sign the Flux install manifests |