summaryrefslogtreecommitdiff
path: root/.cirrus.yml
diff options
context:
space:
mode:
authorChris Evich <cevich@redhat.com>2022-06-30 12:13:45 -0400
committerChris Evich <cevich@redhat.com>2022-07-01 11:25:47 -0400
commit8cff1c2bf834c6a5ef41b4b96c243d0a02c704c8 (patch)
treeaf792cfe5def0e8713cab512aea4103beff4bbd8 /.cirrus.yml
parentf58d7dbdab7076d1ff83375fdbc010445261c0cd (diff)
downloadpodman-8cff1c2bf834c6a5ef41b4b96c243d0a02c704c8.tar.gz
podman-8cff1c2bf834c6a5ef41b4b96c243d0a02c704c8.tar.bz2
podman-8cff1c2bf834c6a5ef41b4b96c243d0a02c704c8.zip
Cirrus: Add podman-machine integration test
The podman-machine integration tests are designed to execute on bare-metal, since they perform significant work with virtual-machines. This test is costly to run at scale, so it is limited to being manually triggered by developers (for now). A 'trigger' button will appear in the task status page of the Github WebUI once all test dependencies are met. In the Cirrus-CI WebUI, there is also a 'pre-trigger' button that may be pressed if a developer doesn't wish to wait. Also: * Add a `localmachine` target in the `Makefile` on the off-chance developers wish to execute locally. Update the `ginkgo-run` target to accommodate re-use by the new `localmachine` target. * Exclude `podman_machine` task from `success` dependency verification. This also involves adding an exception to `cirrus_yaml_test.py` otherwise it will complain loudly. * ***NOTE*** Inclusion of `ec2_instance` in *any* task will cause `hack/get_ci_vm.sh` to barf and be non-functional. Future updates will be made to restore functionality. Before then, simply comment out the `ec2_instance` section as a temporarily workaround. Signed-off-by: Chris Evich <cevich@redhat.com>
Diffstat (limited to '.cirrus.yml')
-rw-r--r--.cirrus.yml38
1 files changed, 37 insertions, 1 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 06f4a565c..81bbe7c8f 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -30,8 +30,10 @@ env:
PRIOR_FEDORA_NAME: "fedora-35"
UBUNTU_NAME: "ubuntu-2110"
- # Google-cloud VM Images
+ # Image identifiers
IMAGE_SUFFIX: "c6211193021923328"
+ FEDORA_AMI_ID: "ami-06a41d8a81ab56afa"
+ # Complete image names
FEDORA_CACHE_IMAGE_NAME: "fedora-${IMAGE_SUFFIX}"
PRIOR_FEDORA_CACHE_IMAGE_NAME: "prior-fedora-${IMAGE_SUFFIX}"
UBUNTU_CACHE_IMAGE_NAME: "ubuntu-${IMAGE_SUFFIX}"
@@ -66,6 +68,8 @@ timeout_in: 60m
gcp_credentials: ENCRYPTED[a28959877b2c9c36f151781b0a05407218cda646c7d047fc556e42f55e097e897ab63ee78369dae141dcf0b46a9d0cdd]
+aws_credentials: ENCRYPTED[4ca070bffe28eb9b27d63c568b52970dd46f119c3a83b8e443241e895dbf1737580b4d84eed27a311a2b74287ef9f79f]
+
# Attempt to prevent flakes by confirming all required external/3rd-party
# services are available and functional.
@@ -577,6 +581,35 @@ rootless_integration_test_task:
always: *int_logs_artifacts
+podman_machine_task:
+ name: *std_name_fmt
+ alias: podman_machine
+ only_if: *not_tag_branch_build_docs
+ # Manually-triggered task: This is "expensive" to run.
+ # DO NOT ADD THIS TASK AS DEPENDENCY FOR `success_task`
+ # it will cause 'success' to block.
+ trigger_type: manual
+ depends_on:
+ - build
+ - local_integration_test
+ - remote_integration_test
+ - container_integration_test
+ - rootless_integration_test
+ ec2_instance:
+ image: "${VM_IMAGE_NAME}"
+ type: m5zn.metal # Bare-metal instance is required
+ region: us-east-1
+ env:
+ TEST_FLAVOR: "machine"
+ PRIV_NAME: "rootless" # intended use-case
+ DISTRO_NV: "${FEDORA_NAME}"
+ VM_IMAGE_NAME: "${FEDORA_AMI_ID}"
+ clone_script: *get_gosrc
+ setup_script: *setup
+ main_script: *main
+ always: *int_logs_artifacts
+
+
# Always run subsequent to integration tests. While parallelism is lost
# with runtime, debugging system-test failures can be more challenging
# for some golang developers. Otherwise the following tasks run across
@@ -842,6 +875,9 @@ success_task:
- remote_integration_test
- container_integration_test
- rootless_integration_test
+ # Manually triggered task. If made automatic, remove bypass
+ # in contrib/cirrus/cirrus_yaml_test.py for this task.
+ # - podman_machine
- local_system_test
- remote_system_test
- rootless_system_test