ci: replace generated artifact-matrix workflows with one reusable + thin callers#475
Open
igorpecovnik wants to merge 1 commit into
Open
ci: replace generated artifact-matrix workflows with one reusable + thin callers#475igorpecovnik wants to merge 1 commit into
igorpecovnik wants to merge 1 commit into
Conversation
…hin callers Drop the 6 generated ~9400-line complete-artifact-matrix-*.yml files, the 600-line recreate-matrix.yml bash/awk generator, the Jinja chunk templates and the per-track gha_config_*.yaml. Replace with one hand-written reusable pipeline (complete-artifact-matrix.yml) plus two reusable chunk bodies (build-artifacts-chunk.yml, build-images-chunk.yml) fanned out over a chunk matrix, and six thin per-track callers (nightly, standard-support, community, apps, all, all-stable). Targets are already fetched at runtime from github.armbian.com/release-targets/, so no board classification / targets generation is needed here. Per-track behaviour (schedules, repos, upload paths, menu defaults) is preserved. Also drop the external watchdog.yml cron and integrate repeat-on-failure directly into the build steps (retry the compile.sh invocation BUILD_ATTEMPTS times). Update nothing else. Signed-off-by: Igor Pecovnik <igor@armbian.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Replaces the six generated
complete-artifact-matrix-*.ymlworkflows (~9,400 lines each) and their generator with one hand-written reusable pipeline plus six thin per-track callers. No more code generation, no committed 9k-line giants, no 6× duplication.recreate-matrix.yml(600-line bash/awk generator)gha_config_*.yamlcomplete-artifact-matrix.yml+ 2 reusable chunk bodieswatchdog.yml(15-min cron, reruns failed jobs)2,160 lines total, hand-maintained.
How it works
complete-artifact-matrix.yml— reusable (workflow_call) machinery:team_check → version_prep → matrix_prep → {artifact chunks} → {image chunks} → publish-debs-to-repo → closing.build-artifacts-chunk.yml/build-images-chunk.yml— the per-chunk build bodies, written once and fanned out over achunk: [1..17]/[1..16]matrix that indexesmatrix_prep's named outputs (outputs[format('artifacts-chunk-json-{0}', matrix.chunk)]).build-nightly,build-standard-support,build-community,build-apps,build-all,build-all-stable) — each holds its own schedule, concurrency, dispatch inputs, and a singleuses:with the track's values.Per-track behaviour (schedules, repos, upload paths, menu defaults, the
CHECK_OCI-uses-nightlybuild-default quirk) is preserved. The emptyall/all-stableboard dropdown (a missing-file bug in the old generator) is gone; usetargetsFilterIncludeto scope a board.Targets (
targets-release-*.yaml) are already fetched at runtime fromgithub.armbian.com/release-targets/, so board classification / targets generation no longer lives in this repo.targets-release-*.yaml, the templates, andcomplete-artifact-one-by-one.ymlare left untouched.watchdog.ymlis dropped; both build steps now retry thecompile.shinvocationBUILD_ATTEMPTS(default 3) times with backoff.watchdog's entry list moved with it.Validation
actionlintclean (custom self-hosted runner labels declared in.github/actionlint.yaml).compile.sh gha-matrixrun on thesuperself-hosted runner with NetBox secrets — that needs the workflows on the default branch (workflow_dispatch requirement). The first nightly/dispatch after merge is the true end-to-end check. If the dynamic index ever misbehaves at scale, the fallback is a staticmatrix.includeenumeration (same structure).