Skip to content

Refactor GitHub Actions Workflows#287

Merged
felix-kaestner merged 6 commits intomainfrom
refactor-actions
Apr 13, 2026
Merged

Refactor GitHub Actions Workflows#287
felix-kaestner merged 6 commits intomainfrom
refactor-actions

Conversation

@felix-kaestner
Copy link
Copy Markdown
Contributor

With this PR we stop using go-makefile-maker for GitHub Actions workflow generation. With recent additions of custom workflows, maintaining consistency between auto-generated and manually written pipelines became impractical. The effort to update all workflows already requires reviewing each one, so auto-generation provides diminishing value. Additionally, some generated workflows like CodeQL are redundant (enabled at repo level) while others like test-chart or publishing the docker image to ghcr.io required manual modifications anyway.

Going forward, all workflows will be manually maintained for this project, providing full control over CI/CD configuration.

@felix-kaestner felix-kaestner requested a review from a team as a code owner April 8, 2026 15:50
@hardikdr hardikdr added the area/switch-automation Automation processes for network switch management and operations. label Apr 9, 2026
@hardikdr hardikdr added this to Roadmap Apr 9, 2026
@felix-kaestner felix-kaestner force-pushed the refactor-actions branch 4 times, most recently from 756a016 to 5eb7237 Compare April 9, 2026 19:43
Comment thread .github/workflows/publish-image.yml
Comment thread .github/workflows/publish-image.yml
Comment thread hack/validate-kustomize.sh Outdated
Comment thread .github/workflows/size-label.yml
Comment thread charts/network-operator/templates/manager/manager.yaml
Comment thread Makefile.maker.yaml
Introduce a CI workflow that validates all kustomization.yaml files in
the config directory on pull requests to main. This ensures Kustomize
configurations remain valid and buildable.

With this change, we are additionally fixing the invalid file reference
in config/samples/kustomization.yaml that was previously undiscovered.
Enhance the github action workflow with Go build caching, PR triggers
for validation builds, and tag-based releases. Images are only pushed
on main branch commits and version tags, while PRs only build without
pushing.

The introduced caching uses the experimental GitHub Actions Cache
Exporter Backend to fetch and upload cache blocks for the container
image build. Additionally, buildkit cache mounts are being preserved
between builds by injecting a temporary container with the cache mount
data in the Docker build steps. The procedure is outlined in the Docker
Documentation[^1].

Additionally, we don't run any make target during the build process any
longer, removing the requirement to install make into the Dockerfile and
building the manager binary directly using the appropriate 'go build'
command given that required BININFO_ arguments are provided now as
build-argument to the docker build context during the workflow execution.

[^1]: https://docs.docker.com/build/ci/github-actions/cache/#github-cache.
Introduce a workflow that automatically labels pull requests with size
indicators (XS, S, M, L, XL) based on lines changed. This helps
reviewers quickly assess PR scope and prioritize reviews.
Introduce a workflow that packages and pushes the Helm chart to ghcr.io
as an OCI artifact. Release tags use semantic versioning while branch
builds use commit-based versions. PRs only validate the chart package.

Additionally, in the published helm chart we intentionally omit any helm
dependencies.
Introduce a workflow that runs code generation targets and detects any
uncommitted changes. This ensures generated code, docs, charts, and
formatting are always up to date in pull requests.

This change additionally fixes uncommitted changes that were previously
not detected.
Stop using go-makefile-maker for GitHub Actions workflow generation.
With recent additions of custom workflows, maintaining consistency
between auto-generated and manually written pipelines became impractical.
The effort to update all workflows already requires reviewing each one,
so auto-generation provides diminishing value. Additionally, some
generated workflows like CodeQL are redundant (enabled at repo level)
while others like test-chart required manual modifications anyway.

Going forward, all workflows will be manually maintained for this
project, providing full control over CI/CD configuration.
@felix-kaestner felix-kaestner merged commit 7315b2a into main Apr 13, 2026
17 of 18 checks passed
@felix-kaestner felix-kaestner deleted the refactor-actions branch April 13, 2026 15:29
@github-project-automation github-project-automation bot moved this to Done in Roadmap Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/switch-automation Automation processes for network switch management and operations.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants