Cirrus: Allow manually running image-build task

Building multi-arch images in a standardized way is complex.  Some
of the builds themselves can take a really long time to run (over
an hour).  Make changes easier to test inside a PR by adding
manually-triggered image-build tasks.  These mirror most of the real
cron-triggered task, without actually pushing the final images.

Signed-off-by: Chris Evich <cevich@redhat.com>
This commit is contained in:
Chris Evich
2022-03-31 15:06:39 -04:00
parent 5fcd2a7ac3
commit d55c46f8c6
2 changed files with 15 additions and 2 deletions

View File

@ -741,7 +741,7 @@ upgrade_test_task:
always: *logs_artifacts
image_build_task:
image_build_task: &image-build
name: "Build multi-arch $CTXDIR"
alias: image_build
# Some of these container images take > 1h to build, limit
@ -774,6 +774,18 @@ image_build_task:
- main.sh $CIRRUS_REPO_CLONE_URL $CTXDIR
test_image_build_task:
<<: *image-build
# Allow this to run inside a PR
only_if: $CI == $CI
# This takes a LONG time, only run when requested. N/B: Any task
# made to depend on this one will block FOREVER unless triggered.
trigger_type: manual
# Overwrite all 'env', don't push anything, just do the build.
env:
DRYRUN: 1
# This task is critical. It updates the "last-used by" timestamp stored
# in metadata for all VM images. This mechanism functions in tandem with
# an out-of-band pruning operation to remove disused VM images.

View File

@ -26,7 +26,8 @@ class TestCaseBase(unittest.TestCase):
class TestDependsOn(TestCaseBase):
ALL_TASK_NAMES = None
SUCCESS_DEPS_EXCLUDE = set(['success', 'artifacts', 'release', 'release_test'])
SUCCESS_DEPS_EXCLUDE = set(['success', 'artifacts',
'test_image_build', 'release', 'release_test'])
def setUp(self):
super().setUp()