Skip to content

feat(ci): add unified "GCP: Build, Test and Publish" workflow#358

Open
yuravk wants to merge 2 commits into
AlmaLinux:mainfrom
yuravk:gcp-build-test-publish
Open

feat(ci): add unified "GCP: Build, Test and Publish" workflow#358
yuravk wants to merge 2 commits into
AlmaLinux:mainfrom
yuravk:gcp-build-test-publish

Conversation

@yuravk

@yuravk yuravk commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Single workflow_dispatch chaining the three standalone GCP workflows:
build (x86_64 + aarch64, gcp-build-steps) -> test (cloud-image-tests:
smoke on both arches in parallel, then the per-shape matrices) ->
publish each arch to almalinux-cloud (prod), one arch at a time.

Inputs: all gcp-build.yml inputs, plus a new run_test gate (default true) to build+publish without testing, plus the gcp-test.yml inputs except version_major and arch (arch acts as ALL - both arches built/tested/ published). No gcp-publish.yml inputs are exposed: publish runs as a max-parallel:1 arch matrix and takes image_datetag from the build's YYYYMMDD date_stamp.

Stage gating (job results): tests require both builds to succeed; publish requires the builds and, when run_test is true, all test jobs to pass - so run_test=false builds and publishes straight through. The standalone gcp-build.yml / gcp-test.yml / gcp-publish.yml are left unchanged.

Single workflow_dispatch chaining the three standalone GCP workflows:
  build (x86_64 + aarch64, gcp-build-steps) -> test (cloud-image-tests:
  smoke on both arches in parallel, then the per-shape matrices) ->
  publish each arch to almalinux-cloud (prod), one arch at a time.

Inputs: all gcp-build.yml inputs, plus a new run_test gate (default true)
to build+publish without testing, plus the gcp-test.yml inputs except
version_major and arch (arch acts as ALL - both arches built/tested/
published). No gcp-publish.yml inputs are exposed: publish runs as a
max-parallel:1 arch matrix and takes image_datetag from the build's
YYYYMMDD date_stamp.

Stage gating (job results): tests require both builds to succeed; publish
requires the builds and, when run_test is true, all test jobs to pass -
so run_test=false builds and publishes straight through. The standalone
gcp-build.yml / gcp-test.yml / gcp-publish.yml are left unchanged.
@jonathanspw

Copy link
Copy Markdown
Member

We need a way to override test failures and still push forward to the publish stage.

Tests now always run (the run_test skip gate is removed). The new
override_test_failure input (default false) controls only whether a test
*failure* still lets the publish stage proceed:

  override_test_failure=false (default) -> a failing test job skips publish
  override_test_failure=true            -> publish even if test(s) fail

build-cit, the test jobs, and the quota summary no longer reference
run_test; publish gates on `override_test_failure || all tests passed`
(still also requiring both builds and publish_images). The run-name always
shows "Build, Test and Publish" since tests always run.
@jonathanspw

Copy link
Copy Markdown
Member

Is there a way to have the test failure overridable after the tests have run instead of as an input flag? We need to override once we know what the test failures are, not before.

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.

2 participants