Skip to content

Refactor GitHub Actions Workflows#177

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

Refactor GitHub Actions Workflows#177
felix-kaestner wants to merge 6 commits intomainfrom
refactor-actions

Conversation

@felix-kaestner
Copy link
Contributor

@felix-kaestner felix-kaestner commented Feb 4, 2026

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 changed the title Refactor GitHub Actions Workflows Refactor GitHub Actions Workflows Feb 4, 2026
@felix-kaestner felix-kaestner force-pushed the refactor-actions branch 5 times, most recently from 0d74501 to c16b734 Compare February 4, 2026 23:14
@hardikdr hardikdr added the area/metal-automation Automation processes within the Metal project. label Feb 5, 2026
@hardikdr hardikdr added this to Roadmap Feb 5, 2026
@felix-kaestner felix-kaestner force-pushed the refactor-actions branch 2 times, most recently from dddf821 to 9ad8003 Compare February 11, 2026 10:50
@felix-kaestner felix-kaestner changed the base branch from main to pause February 11, 2026 10:51
@github-actions
Copy link

Merging this branch changes the coverage (2 decrease, 1 increase)

Impacted Packages Coverage Δ 🤖
github.com/ironcore-dev/network-operator/api/core/v1alpha1 0.00% (ø)
github.com/ironcore-dev/network-operator/cmd 0.00% (ø)
github.com/ironcore-dev/network-operator/internal/annotations 100.00% (+100.00%) 🌟
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx 63.00% (-1.48%) 👎
github.com/ironcore-dev/network-operator/internal/controller/core 65.95% (-0.76%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/ironcore-dev/network-operator/api/core/v1alpha1/device_types.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/api/core/v1alpha1/groupversion_info.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/cmd/main.go 0.00% (ø) 0 0 0
github.com/ironcore-dev/network-operator/internal/annotations/annotations.go 100.00% (+100.00%) 4 (+4) 4 (+4) 0 🌟
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/bordergateway_controller.go 51.14% (-0.71%) 219 (+3) 112 107 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/system_controller.go 64.65% (-0.98%) 99 (+3) 64 (+1) 35 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/vpcdomain_controller.go 74.64% (-2.54%) 209 (+3) 156 (-3) 53 (+6) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/acl_controller.go 63.55% (-0.87%) 107 (+3) 68 (+1) 39 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/banner_controller.go 62.22% (-0.66%) 135 (+3) 84 (+1) 51 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/bgp_controller.go 63.55% (-0.87%) 107 (+3) 68 (+1) 39 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/bgp_peer_controller.go 71.53% (-0.81%) 144 (+3) 103 (+1) 41 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/certificate_controller.go 62.81% (-0.75%) 121 (+3) 76 (+1) 45 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/device_controller.go 63.98% (-0.78%) 211 (+1) 135 (-1) 76 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/dns_controller.go 63.46% (-0.89%) 104 (+3) 66 (+1) 38 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/evpninstance_controller.go 73.56% (-0.71%) 174 (+3) 128 (+1) 46 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/interface_controller.go 75.00% (-0.34%) 376 (+3) 282 (+1) 94 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/isis_controller.go 60.34% (-0.72%) 116 (+3) 70 (+1) 46 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/managementaccess_controller.go 56.20% (-0.58%) 121 (+3) 68 (+1) 53 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ntp_controller.go 63.46% (-0.89%) 104 (+3) 66 (+1) 38 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/nve_controller.go 67.49% (-0.51%) 203 (+3) 137 (+1) 66 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/ospf_controller.go 58.50% (-1.22%) 147 (+3) 86 61 (+3) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/pim_controller.go 60.34% (-0.72%) 116 (+3) 70 (+1) 46 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/prefixset_controller.go 68.22% (-1.01%) 107 (+3) 73 (+1) 34 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/routingpolicy_controller.go 71.34% (-0.74%) 157 (+3) 112 (+1) 45 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/snmp_controller.go 63.46% (-0.89%) 104 (+3) 66 (+1) 38 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/syslog_controller.go 63.55% (-0.87%) 107 (+3) 68 (+1) 39 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/user_controller.go 60.74% (-0.62%) 135 (+3) 82 (+1) 53 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/vlan_controller.go 66.67% (-0.88%) 117 (+3) 78 (+1) 39 (+2) 👎
github.com/ironcore-dev/network-operator/internal/controller/core/vrf_controller.go 66.97% (-0.95%) 109 (+3) 73 (+1) 36 (+2) 👎

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

@felix-kaestner felix-kaestner force-pushed the refactor-actions branch 4 times, most recently from 73e206d to 1fd2089 Compare February 11, 2026 15:45
@felix-kaestner felix-kaestner force-pushed the pause branch 2 times, most recently from 0ac30a1 to b981f25 Compare February 16, 2026 13:56
@felix-kaestner felix-kaestner force-pushed the pause branch 2 times, most recently from 6c1ae39 to d76482d Compare February 18, 2026 22:27
@felix-kaestner felix-kaestner force-pushed the pause branch 2 times, most recently from b0fcc88 to 9662284 Compare March 3, 2026 10:33
@felix-kaestner felix-kaestner marked this pull request as ready for review March 3, 2026 12:07
@felix-kaestner felix-kaestner requested a review from a team as a code owner March 3, 2026 12:07
@felix-kaestner felix-kaestner force-pushed the pause branch 2 times, most recently from 0ef1218 to 1d4dca0 Compare March 4, 2026 09:50
Base automatically changed from pause to main March 4, 2026 09:56
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].

[^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.
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/metal-automation Automation processes within the Metal project.

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants