--- # Main collection of env. vars to set for all tasks and scripts. env: #### #### Global variables used for all tasks #### # Name of the ultimate destination branch for this CI run DEST_BRANCH: "release-5.29" # c/skopeo branch name which must work with this c/image branch SKOPEO_CI_BRANCH: "release-1.14" # Use GO module mirror (reason unknown, travis did it this way) GOPROXY: https://proxy.golang.org # Overrides default location (/tmp/cirrus) for repo clone GOPATH: "/var/tmp/go" GOBIN: "${GOPATH}/bin" GOCACHE: "${GOPATH}/cache" GOSRC: &gosrc "/var/tmp/go/src/github.com/containers/image" # Required for consistency with containers/skopeo CI SKOPEO_PATH: "${GOPATH}/src/github.com/containers/skopeo" CIRRUS_WORKING_DIR: *gosrc # The default is 'sh' if unspecified CIRRUS_SHELL: "/usr/bin/bash" # Save a little typing (path relative to $CIRRUS_WORKING_DIR) SCRIPT_BASE: "./contrib/cirrus" # Normally set to an empty-string. # Temporarily set this to a containers/skopeo PR number to # test changes made there, in a PR in this repository. SKOPEO_PR: # Google-cloud VM Images IMAGE_SUFFIX: "c20231004t194547z-f39f38d13" FEDORA_CACHE_IMAGE_NAME: "fedora-${IMAGE_SUFFIX}" DEBIAN_CACHE_IMAGE_NAME: "debian-${IMAGE_SUFFIX}" # Container FQIN's (include bleeding-edge development-level container deps.) FEDORA_CONTAINER_FQIN: "quay.io/libpod/fedora_podman:${IMAGE_SUFFIX}" # Built along with the standard PR-based workflow in c/automation_images SKOPEO_CIDEV_CONTAINER_FQIN: "quay.io/libpod/skopeo_cidev:${IMAGE_SUFFIX}" gcp_credentials: ENCRYPTED[38c860dd789c68bd4f38b24d4fa5ddb525346f7ebe02c8bc91532d625f033cb357f9b4a22f09a8299c92bfdad7556ae5] validate_task: # The git-validation tool doesn't work well on branch or tag push, # under Cirrus-CI, due to challenges obtaining the starting commit ID. # Only do validation for PRs. only_if: $CIRRUS_PR != '' gce_instance: &debian_vm image_project: libpod-218412 zone: "us-central1-f" cpu: 2 memory: "4Gb" # Required to be 200gig, do not modify - has i/o performance impact # according to gcloud CLI tool warning messages. disk: 200 image_name: ${DEBIAN_CACHE_IMAGE_NAME} env: HOME: "/root" # default unset, needed by golangci-lint. script: | git remote update make tools ${GOBIN}/git-validation -q -run DCO,short-subject,dangling-whitespace -range $(git merge-base origin/${DEST_BRANCH} HEAD)..${CIRRUS_CHANGE_IN_REPO} make validate cross_task: only_if: ¬_docs $CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' gce_instance: *debian_vm script: make cross test_task: alias: test depends_on: - validate only_if: *not_docs gce_instance: *debian_vm matrix: - name: "Test" env: BUILDTAGS: 'btrfs_noversion libdm_no_deferred_remove' - name: "Test w/ opengpg" env: BUILDTAGS: &withopengpg 'btrfs_noversion libdm_no_deferred_remove containers_image_openpgp' script: ${GOSRC}/${SCRIPT_BASE}/runner.sh image_tests ##### ##### NOTE: This task is subtantially duplicated in the containers/skopeo ##### repository's `.cirrus.yml`. Changes made here should be fully merged ##### prior to being manually duplicated and maintained in containers/skopeo. ##### test_skopeo_task: alias: test_skopeo only_if: *not_docs depends_on: - validate gce_instance: image_project: libpod-218412 zone: "us-central1-f" cpu: 2 memory: "4Gb" # Required to be 200gig, do not modify - has i/o performance impact # according to gcloud CLI tool warning messages. disk: 200 image_name: ${FEDORA_CACHE_IMAGE_NAME} matrix: - name: "Skopeo Test" env: BUILDTAGS: 'btrfs_noversion libdm_no_deferred_remove' - name: "Skopeo Test w/ opengpg" env: BUILDTAGS: *withopengpg setup_script: >- "${GOSRC}/${SCRIPT_BASE}/runner.sh" setup vendor_script: >- "${SKOPEO_PATH}/${SCRIPT_BASE}/runner.sh" vendor build_script: >- "${SKOPEO_PATH}/${SCRIPT_BASE}/runner.sh" build unit_script: >- "${SKOPEO_PATH}/${SCRIPT_BASE}/runner.sh" unit integration_script: >- "${SKOPEO_PATH}/${SCRIPT_BASE}/runner.sh" integration system_script: > "${SKOPEO_PATH}/${SCRIPT_BASE}/runner.sh" system # 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. meta_task: name: "VM img. keepalive" alias: meta container: &smallcontainer cpu: 2 memory: 2 image: quay.io/libpod/imgts:latest env: # Space-separated list of images used by this repository state IMGNAMES: | ${FEDORA_CACHE_IMAGE_NAME} ${DEBIAN_CACHE_IMAGE_NAME} BUILDID: "${CIRRUS_BUILD_ID}" REPOREF: "${CIRRUS_REPO_NAME}" GCPJSON: ENCRYPTED[04306103eee1933f87deb8a5af6514a7e3164aa589d6079abc0451eb2360879430ed020d6e025ca64ef667138ce9d786] GCPNAME: ENCRYPTED[574c8afac5115af72e6722d7c1d1c7f9fca7a5586f3caad45251c1745d9b82d3c012b5e2f914e19fca0de56ce2c10f5d] GCPPROJECT: libpod-218412 clone_script: &noop mkdir -p "$CIRRUS_WORKING_DIR" script: /usr/local/bin/entrypoint.sh # Status aggregator for all tests. This task simply ensures a defined # set of tasks all passed, and allows confirming that based on the status # of this task. success_task: name: "Total Success" alias: success # N/B: ALL tasks must be listed here, minus their '_task' suffix. depends_on: - validate - cross - test - test_skopeo - meta container: *smallcontainer env: CTR_FQIN: ${FEDORA_CONTAINER_FQIN} TEST_ENVIRON: container clone_script: *noop script: /bin/true