Skip to content

feat(ci): OpenNebula and GenCloud: monthly scheduled runs per version_major#360

Closed
yuravk wants to merge 2 commits into
AlmaLinux:mainfrom
yuravk:main
Closed

feat(ci): OpenNebula and GenCloud: monthly scheduled runs per version_major#360
yuravk wants to merge 2 commits into
AlmaLinux:mainfrom
yuravk:main

Conversation

@yuravk

@yuravk yuravk commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

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 minute 17 to avoid GitHub's congested top-of-the-hour cron slot.

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, 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-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.

yuravk added 2 commits July 8, 2026 15:17
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.
@yuravk
yuravk requested a review from andrewlukoshko July 8, 2026 15:55
@yuravk yuravk closed this Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant