From 201d853283644c8d5d156a8507232cff1549a45c Mon Sep 17 00:00:00 2001 From: Chris Evich Date: Wed, 6 Jan 2021 10:41:29 -0500 Subject: Cirrus: Skip most tests on tag-push Due to various reasons, CI results (esp. testing tasks) are completely ignored for builds triggered by a new tag-push. Additionally, since many of the automation scripts are in the repo., any related failures/flakes would require code changes (therefore a new tag). Resolve this by skipping every testing-type task for builds triggered by tag-push. Only retain tasks which build things intended for consumption associated with a possible official release. Signed-off-by: Chris Evich --- .cirrus.yml | 26 +++++++++++++++++++------- contrib/cirrus/runner.sh | 12 ++++++++++-- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 18cb889ad..b946a8e57 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -67,6 +67,7 @@ gcp_credentials: ENCRYPTED[a28959877b2c9c36f151781b0a05407218cda646c7d047fc556e4 ext_svc_check_task: alias: 'ext_svc_check' # int. ref. name - required for depends_on reference name: "Ext. services" # Displayed Title - has no other significance + skip: &tags "$CIRRUS_TAG != ''" # Don't run on tags # Default/small container image to execute tasks with container: &smallcontainer image: ${CTR_FQIN} @@ -90,7 +91,7 @@ ext_svc_check_task: automation_task: alias: 'automation' name: "Check Automation" - skip: &branch "$CIRRUS_PR == '' || $CIRRUS_TAG != ''" # Don't run for branches + skip: &branches_and_tags "$CIRRUS_PR == '' || $CIRRUS_TAG != ''" # Don't run on branches/tags container: *smallcontainer env: TEST_FLAVOR: automation @@ -107,6 +108,7 @@ automation_task: smoke_task: alias: 'smoke' name: "Smoke Test" + skip: *tags container: &bigcontainer image: ${CTR_FQIN} # Leave some resources for smallcontainer @@ -209,6 +211,7 @@ build_task: validate_task: name: "Validate $DISTRO_NV Build" alias: validate + skip: *tags depends_on: - ext_svc_check - automation @@ -237,7 +240,7 @@ bindings_task: name: "Test Bindings" alias: bindings only_if: ¬_docs $CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' - skip: *branch + skip: *branches_and_tags depends_on: - build gce_instance: *standardvm @@ -275,6 +278,7 @@ swagger_task: vendor_task: name: "Test Vendoring" alias: vendor + skip: *tags depends_on: - build container: *smallcontainer @@ -373,6 +377,7 @@ osx_alt_build_task: docker-py_test_task: name: Docker-py Compat. alias: docker-py_test + skip: *tags only_if: *not_docs depends_on: - build @@ -393,6 +398,7 @@ docker-py_test_task: unit_test_task: name: "Unit tests on $DISTRO_NV" alias: unit_test + skip: *tags only_if: *not_docs depends_on: - validate @@ -410,6 +416,7 @@ unit_test_task: apiv2_test_task: name: "APIv2 test on $DISTRO_NV" alias: apiv2_test + skip: *tags depends_on: - validate gce_instance: *standardvm @@ -437,6 +444,7 @@ apiv2_test_task: compose_test_task: name: "compose test on $DISTRO_NV" alias: compose_test + skip: *tags depends_on: - validate gce_instance: *standardvm @@ -458,7 +466,7 @@ local_integration_test_task: &local_integration_test_task name: &std_name_fmt "$TEST_FLAVOR $PODBIN_NAME $DISTRO_NV $PRIV_NAME $TEST_ENVIRON" alias: local_integration_test only_if: *not_docs - skip: *branch + skip: *branches_and_tags depends_on: - unit_test matrix: *platform_axis @@ -490,7 +498,7 @@ container_integration_test_task: name: *std_name_fmt alias: container_integration_test only_if: *not_docs - skip: *branch + skip: *branches_and_tags depends_on: - unit_test matrix: &fedora_vm_axis @@ -521,7 +529,7 @@ rootless_integration_test_task: name: *std_name_fmt alias: rootless_integration_test only_if: *not_docs - skip: *branch + skip: *branches_and_tags depends_on: - unit_test matrix: *fedora_vm_axis @@ -544,6 +552,7 @@ rootless_integration_test_task: local_system_test_task: &local_system_test_task name: *std_name_fmt alias: local_system_test + skip: *tags only_if: *not_docs depends_on: - local_integration_test @@ -571,6 +580,7 @@ remote_system_test_task: rootless_system_test_task: name: *std_name_fmt alias: rootless_system_test + skip: *tags only_if: *not_docs depends_on: - rootless_integration_test @@ -656,7 +666,7 @@ success_task: release_task: name: "Verify Release" alias: release - only_if: $CIRRUS_TAG != '' + only_if: *tags depends_on: - success gce_instance: *standardvm @@ -671,7 +681,9 @@ release_task: # When preparing to release a new version, this task may be manually -# activated at the PR stage to verify the code is in a proper state. +# activated at the PR stage to verify the build is proper for a potential +# podman release. +# # Note: This cannot use a YAML alias on 'release_task' as of this # comment, it is incompatible with 'trigger_type: manual' release_test_task: diff --git a/contrib/cirrus/runner.sh b/contrib/cirrus/runner.sh index 7f9afd1fd..d5f57205c 100755 --- a/contrib/cirrus/runner.sh +++ b/contrib/cirrus/runner.sh @@ -199,8 +199,16 @@ function _run_altbuild() { } function _run_release() { - if bin/podman info |& grep -Eq -- '-dev'; then - die "Releases must never contain '-dev' in output of 'podman info'" + # TODO: These tests should come from code external to the podman repo. + # to allow test-changes (and re-runs) in the case of a correctible test + # flaw or flake at release tag-push time. For now, the test is here + # given it's simplicity. + + msg "Checking podman release (or potential release) criteria." + info_output=$(bin/podman info 2>&1) + if grep -q -- '-dev'<<<"$info_output"; then + die "Releases must never contain '-dev' in output of 'podman info': +$info_output" fi } -- cgit v1.2.3-54-g00ecf