feat(ci): OpenNebula and GenCloud: monthly scheduled runs per version_major#360
Closed
yuravk wants to merge 2 commits into
Closed
feat(ci): OpenNebula and GenCloud: monthly scheduled runs per version_major#360yuravk wants to merge 2 commits into
yuravk wants to merge 2 commits into
Conversation
Add on.schedule to opennebula-build-test.yml: one cron per version_major, spread across the month (8 -> 1st, 9 -> 8th, 10 -> 15th, 10-kitten -> 22nd, at 02:00 UTC). A scheduled run has no inputs context, so init-data gains an "Emulate workflow_dispatch inputs" step: it derives version_major from the firing cron (github.event.schedule) and uses the dispatch defaults for the rest (self-hosted=true, store_as_artifact=false, upload_to_s3=true, notify_mattermost=true), exposing them as job outputs. All downstream jobs (matrix, gates, shared-steps/test-steps args) now read those outputs instead of inputs, so dispatch and schedule share one code path. Scheduled runs are restricted to the AlmaLinux org's almalinux/cloud-images repository via an if on init-data (every other job needs it, so forks skip the whole run); workflow_dispatch is unaffected. run-name resolves version_major for both triggers: dispatch reads inputs, schedule maps the cron string back to its version, with a "(scheduled)" suffix.
Add on.schedule to gencloud-build-test.yml: one cron per version_major, spread across the month (8 -> 1st, 9 -> 8th, 10 -> 15th, 10-kitten -> 22nd) at 04:17 UTC - a 2-hour shift from the OpenNebula schedule so the image types don't request metal runners at the same time, and minute 17 to avoid GitHub's congested top-of-the-hour cron slot. Same mechanism as the OpenNebula schedule: init-data's "Emulate workflow_dispatch inputs" step derives version_major from the firing cron and applies the dispatch defaults for the rest, exposing them as job outputs that every later job (matrices, gates, shared-steps / gencloud-test-steps args) reads instead of the inputs context; scheduled runs are restricted to the AlmaLinux org's almalinux/cloud-images repository via an if on init-data; run-name maps the cron string back to its version with a "(scheduled)" suffix.
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.
Add on.schedule to OpenNebula and GenCloud unified workflows: one cron per
version_major, spread across the month. So AlmaLinux 8 -> 1st, 9 -> 8th, 10 -> 15th, 10-kitten -> 22nd, and at 02:17 and 04:17 UTC. A 2-hour shift so the image types don't request metal runners at the same time, and minute17to avoid GitHub's congested top-of-the-hour cron slot.A scheduled run has no inputs context, so
init-datagains an "Emulateworkflow_dispatchinputs" step: it derivesversion_major from the firing cron (github.event.schedule) and uses the dispatch defaults for the rest, exposing them as job outputs. All downstream jobs now read those outputs instead of inputs, so dispatch and schedule share one code path.Scheduled runs are restricted to the AlmaLinux org's
almalinux/cloud-imagesrepository via an if oninit-data(every other job needs it, so forks skip the whole run);workflow_dispatchis unaffected.run-nameresolvesversion_majorfor both triggers: dispatch reads inputs, schedule maps the cron string back to its version, with a "(scheduled)" suffix.