Skip to content

Refactor GitHub Actions Workflows#287

Open
felix-kaestner wants to merge 6 commits intomainfrom
refactor-actions
Open

Refactor GitHub Actions Workflows#287
felix-kaestner wants to merge 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
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.
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.
@felix-kaestner felix-kaestner force-pushed the refactor-actions branch 2 times, most recently from e5314bc to 756a016 Compare April 9, 2026 19:41
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.
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.
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: No status

Development

Successfully merging this pull request may close these issues.

2 participants