github.com/AbhinandanKurakure/podman/v3@v3.4.10/.cirrus.yml (about) 1 --- 2 3 # Main collection of env. vars to set for all tasks and scripts. 4 env: 5 #### 6 #### Global variables used for all tasks 7 #### 8 # Name of the ultimate destination branch for this CI run, PR or post-merge. 9 DEST_BRANCH: "v3.4" 10 # Overrides default location (/tmp/cirrus) for repo clone 11 GOPATH: &gopath "/var/tmp/go" 12 GOBIN: "${GOPATH}/bin" 13 GOCACHE: "${GOPATH}/cache" 14 GOSRC: &gosrc "/var/tmp/go/src/github.com/containers/podman" 15 CIRRUS_WORKING_DIR: *gosrc 16 # The default is 'sh' if unspecified 17 CIRRUS_SHELL: "/bin/bash" 18 # Save a little typing (path relative to $CIRRUS_WORKING_DIR) 19 SCRIPT_BASE: "./contrib/cirrus" 20 # Runner statistics log file path/name 21 STATS_LOGFILE_SFX: 'runner_stats.log' 22 STATS_LOGFILE: '$GOSRC/${CIRRUS_TASK_NAME}-${STATS_LOGFILE_SFX}' 23 24 #### 25 #### Cache-image names to test with (double-quotes around names are critical) 26 #### 27 FEDORA_NAME: "fedora-34" 28 PRIOR_FEDORA_NAME: "fedora-33" 29 UBUNTU_NAME: "ubuntu-2104" 30 31 # Google-cloud VM Images 32 IMAGE_SUFFIX: "c6431352024203264" 33 FEDORA_CACHE_IMAGE_NAME: "fedora-${IMAGE_SUFFIX}" 34 PRIOR_FEDORA_CACHE_IMAGE_NAME: "prior-fedora-${IMAGE_SUFFIX}" 35 UBUNTU_CACHE_IMAGE_NAME: "ubuntu-${IMAGE_SUFFIX}" 36 37 # Container FQIN's 38 FEDORA_CONTAINER_FQIN: "quay.io/libpod/fedora_podman:${IMAGE_SUFFIX}" 39 PRIOR_FEDORA_CONTAINER_FQIN: "quay.io/libpod/prior-fedora_podman:${IMAGE_SUFFIX}" 40 UBUNTU_CONTAINER_FQIN: "quay.io/libpod/ubuntu_podman:${IMAGE_SUFFIX}" 41 42 #### 43 #### Control variables that determine what to run and how to run it. 44 #### N/B: Required ALL of these are set for every single task. 45 #### 46 TEST_FLAVOR: # int, sys, ext_svc, validate, automation, etc. 47 TEST_ENVIRON: host # 'host' or 'container' 48 PODBIN_NAME: podman # 'podman' or 'remote' 49 PRIV_NAME: root # 'root' or 'rootless' 50 DISTRO_NV: # any {PRIOR_,}{FEDORA,UBUNTU}_NAME value 51 VM_IMAGE_NAME: # One of the "Google-cloud VM Images" (above) 52 CTR_FQIN: # One of the "Container FQIN's" (above) 53 54 55 # Default timeout for each task 56 timeout_in: 60m 57 58 59 gcp_credentials: ENCRYPTED[a28959877b2c9c36f151781b0a05407218cda646c7d047fc556e42f55e097e897ab63ee78369dae141dcf0b46a9d0cdd] 60 61 62 # Attempt to prevent flakes by confirming all required external/3rd-party 63 # services are available and functional. 64 ext_svc_check_task: 65 alias: 'ext_svc_check' # int. ref. name - required for depends_on reference 66 name: "Ext. services" # Displayed Title - has no other significance 67 skip: &tags "$CIRRUS_TAG != ''" # Don't run on tags 68 # Default/small container image to execute tasks with 69 container: &smallcontainer 70 image: ${CTR_FQIN} 71 # Resources are limited across ALL currently executing tasks 72 # ref: https://cirrus-ci.org/guide/linux/#linux-containers 73 cpu: 2 74 memory: 2 75 env: 76 TEST_FLAVOR: ext_svc 77 CTR_FQIN: ${FEDORA_CONTAINER_FQIN} 78 # NOTE: The default way Cirrus-CI clones is *NOT* compatible with 79 # environment expectations in contrib/cirrus/lib.sh. Specifically 80 # the 'origin' remote must be defined, and all remote branches/tags 81 # must be available for reference from CI scripts. 82 clone_script: &full_clone | 83 cd / 84 rm -rf $CIRRUS_WORKING_DIR 85 mkdir -p $CIRRUS_WORKING_DIR 86 git clone --recursive --branch=$DEST_BRANCH https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git $CIRRUS_WORKING_DIR 87 cd $CIRRUS_WORKING_DIR 88 git remote update origin 89 if [[ -n "$CIRRUS_PR" ]]; then # running for a PR 90 git fetch origin pull/$CIRRUS_PR/head:pull/$CIRRUS_PR 91 git checkout pull/$CIRRUS_PR 92 else 93 git reset --hard $CIRRUS_CHANGE_IN_REPO 94 fi 95 make install.tools 96 97 setup_script: &setup '$GOSRC/$SCRIPT_BASE/setup_environment.sh' 98 main_script: &main '/usr/bin/time --verbose --output="$STATS_LOGFILE" $GOSRC/$SCRIPT_BASE/runner.sh' 99 always: &runner_stats 100 runner_stats_artifacts: 101 path: ./*-${STATS_LOGFILE_SFX} 102 type: text/plain 103 104 105 # Execute some quick checks to confirm this YAML file and all 106 # automation-related shell scripts are sane. 107 automation_task: 108 alias: 'automation' 109 name: "Check Automation" 110 skip: &branches_and_tags "$CIRRUS_PR == '' || $CIRRUS_TAG != ''" # Don't run on branches/tags 111 container: *smallcontainer 112 env: 113 TEST_FLAVOR: automation 114 CTR_FQIN: ${FEDORA_CONTAINER_FQIN} 115 TEST_ENVIRON: container 116 clone_script: *full_clone 117 setup_script: *setup 118 main_script: *main 119 always: *runner_stats 120 121 122 # N/B: This task is critical. It builds all binaries and release archives 123 # for the project, using all primary OS platforms and versions. Assuming 124 # the builds are successful, a cache is stored of the entire `$GOPATH` 125 # contents. For all subsequent tasks, the _BUILD_CACHE_HANDLE value 126 # is used as a key to reuse this cache, saving both time and money. 127 # The only exceptions are tasks which only run inside a container, they 128 # will not have access the cache and therefore must rely on cloning the 129 # repository. 130 build_task: 131 alias: 'build' 132 name: 'Build for $DISTRO_NV' 133 gce_instance: &standardvm 134 image_project: libpod-218412 135 zone: "us-central1-a" 136 cpu: 2 137 memory: "4Gb" 138 # Required to be 200gig, do not modify - has i/o performance impact 139 # according to gcloud CLI tool warning messages. 140 disk: 200 141 image_name: "${VM_IMAGE_NAME}" # from stdenvars 142 matrix: &platform_axis 143 # Ref: https://cirrus-ci.org/guide/writing-tasks/#matrix-modification 144 - env: &stdenvars 145 DISTRO_NV: ${FEDORA_NAME} 146 # Not used here, is used in other tasks 147 VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME} 148 CTR_FQIN: ${FEDORA_CONTAINER_FQIN} 149 # ID for re-use of build output 150 _BUILD_CACHE_HANDLE: ${FEDORA_NAME}-build-${CIRRUS_BUILD_ID} 151 - env: &priorfedora_envvars 152 DISTRO_NV: ${PRIOR_FEDORA_NAME} 153 VM_IMAGE_NAME: ${PRIOR_FEDORA_CACHE_IMAGE_NAME} 154 CTR_FQIN: ${PRIOR_FEDORA_CONTAINER_FQIN} 155 _BUILD_CACHE_HANDLE: ${PRIOR_FEDORA_NAME}-build-${CIRRUS_BUILD_ID} 156 - env: &ubuntu_envvars 157 DISTRO_NV: ${UBUNTU_NAME} 158 VM_IMAGE_NAME: ${UBUNTU_CACHE_IMAGE_NAME} 159 CTR_FQIN: ${UBUNTU_CONTAINER_FQIN} 160 _BUILD_CACHE_HANDLE: ${UBUNTU_NAME}-build-${CIRRUS_BUILD_ID} 161 env: 162 TEST_FLAVOR: build 163 # Ref: https://cirrus-ci.org/guide/writing-tasks/#cache-instruction 164 gopath_cache: &gopath_cache 165 folder: *gopath # Required hard-coded path, no variables. 166 fingerprint_script: echo "$_BUILD_CACHE_HANDLE" 167 # Cheat: Clone here when cache is empty, guaranteeing consistency. 168 populate_script: *full_clone 169 # A normal clone would invalidate useful cache 170 clone_script: &noop mkdir -p $CIRRUS_WORKING_DIR 171 setup_script: *setup 172 main_script: *main 173 always: &binary_artifacts 174 <<: *runner_stats 175 gosrc_artifacts: 176 path: ./* # Grab everything in top-level $GOSRC 177 type: application/octet-stream 178 binary_artifacts: 179 path: ./bin/* 180 type: application/octet-stream 181 182 183 # Confirm the result of building on at least one platform appears sane. 184 # This confirms the binaries can be executed, checks --help vs docs, and 185 # other essential post-build validation checks. 186 validate_task: 187 name: "Validate $DISTRO_NV Build" 188 alias: validate 189 # This task is primarily intended to catch human-errors early on, in a 190 # PR. Skip it for branch-push, branch-create, and tag-push to improve 191 # automation reliability/speed in those contexts. Any missed errors due 192 # to nonsequential PR merging practices, will be caught on a future PR, 193 # build or test task failures. 194 skip: *branches_and_tags 195 depends_on: 196 - ext_svc_check 197 - automation 198 - build 199 # golangci-lint is a very, very hungry beast. 200 gce_instance: &bigvm 201 <<: *standardvm 202 cpu: 8 203 memory: "16Gb" 204 env: 205 <<: *stdenvars 206 TEST_FLAVOR: validate 207 gopath_cache: &ro_gopath_cache 208 <<: *gopath_cache 209 reupload_on_changes: false 210 clone_script: *noop 211 setup_script: *setup 212 main_script: *main 213 always: *runner_stats 214 215 216 # Exercise the "libpod" API with a small set of common 217 # operations to ensure they are functional. 218 bindings_task: 219 name: "Test Bindings" 220 alias: bindings 221 only_if: ¬_docs $CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' 222 skip: *branches_and_tags 223 depends_on: 224 - build 225 gce_instance: *standardvm 226 env: 227 <<: *stdenvars 228 TEST_FLAVOR: bindings 229 gopath_cache: *ro_gopath_cache 230 clone_script: *noop # Comes from cache 231 setup_script: *setup 232 main_script: *main 233 always: &html_artifacts 234 <<: *runner_stats 235 # Required for `contrib/cirrus/logformatter` to work properly 236 html_artifacts: 237 path: ./*.html 238 type: text/html 239 240 241 # Build the "libpod" API documentation `swagger.yaml` and 242 # publish it to google-cloud-storage (GCS). 243 swagger_task: 244 name: "Test Swagger" 245 alias: swagger 246 depends_on: 247 - build 248 gce_instance: *standardvm 249 env: 250 <<: *stdenvars 251 TEST_FLAVOR: swagger 252 # TODO: Due to podman 3.0 activity (including new images), avoid 253 # disturbing the status-quo just to incorporate this one new 254 # container image. Uncomment line below when CI activities normalize. 255 #CTR_FQIN: 'quay.io/libpod/gcsupld:${IMAGE_SUFFIX}' 256 CTR_FQIN: 'quay.io/libpod/gcsupld:c4813063494828032' 257 GCPJSON: ENCRYPTED[927dc01e755eaddb4242b0845cf86c9098d1e3dffac38c70aefb1487fd8b4fe6dd6ae627b3bffafaba70e2c63172664e] 258 GCPNAME: ENCRYPTED[c145e9c16b6fb88d476944a454bf4c1ccc84bb4ecaca73bdd28bdacef0dfa7959ebc8171a27b2e4064d66093b2cdba49] 259 GCPPROJECT: 'libpod-218412' 260 gopath_cache: *ro_gopath_cache 261 clone_script: *noop # Comes from cache 262 setup_script: *setup 263 main_script: *main 264 always: *binary_artifacts 265 266 267 # Check that all included go modules from other sources match 268 # what is expected in `vendor/modules.txt` vs `go.mod`. Also 269 # make sure that the generated bindings in pkg/bindings/... 270 # are in sync with the code. 271 consistency_task: 272 name: "Test Code Consistency" 273 alias: consistency 274 skip: *tags 275 depends_on: 276 - build 277 container: *smallcontainer 278 env: 279 <<: *stdenvars 280 TEST_FLAVOR: consistency 281 TEST_ENVIRON: container 282 CTR_FQIN: ${FEDORA_CONTAINER_FQIN} 283 clone_script: *full_clone # build-cache not available to container tasks 284 setup_script: *setup 285 main_script: *main 286 always: *runner_stats 287 288 289 # There are several other important variations of podman which 290 # must always build successfully. Most of them are handled in 291 # this task, though a few need dedicated tasks which follow. 292 alt_build_task: 293 name: "$ALT_NAME" 294 alias: alt_build 295 only_if: *not_docs 296 depends_on: 297 - build 298 env: 299 <<: *stdenvars 300 TEST_FLAVOR: "altbuild" 301 gce_instance: *standardvm 302 matrix: 303 - env: 304 ALT_NAME: 'Build Each Commit' 305 - env: 306 ALT_NAME: 'Windows Cross' 307 - env: 308 ALT_NAME: 'Build Without CGO' 309 - env: 310 ALT_NAME: 'Test build RPM' 311 - env: 312 ALT_NAME: 'Alt Arch. Cross' 313 gopath_cache: *ro_gopath_cache 314 clone_script: *noop # Comes from cache 315 setup_script: *setup 316 main_script: *main 317 always: *binary_artifacts 318 319 320 # Confirm building a statically-linked binary is successful 321 static_alt_build_task: 322 name: "Static Build" 323 alias: static_alt_build 324 only_if: *not_docs 325 depends_on: 326 - build 327 # Community-maintained task, may fail on occasion. If so, uncomment 328 # the next line and file an issue with details about the failure. 329 # allow_failures: $CI == $CI 330 gce_instance: *bigvm 331 env: 332 <<: *stdenvars 333 TEST_FLAVOR: "altbuild" 334 # gce_instance variation prevents this being included in alt_build_task 335 ALT_NAME: 'Static build' 336 # Do not use 'latest', fixed-version tag for runtime stability. 337 CTR_FQIN: "docker.io/nixos/nix:2.3.6" 338 # Authentication token for pushing the build cache to cachix. 339 # This is critical, it helps to avoid a very lengthy process of 340 # statically building every dependency needed to build podman. 341 # Assuming the pinned nix dependencies in nix/nixpkgs.json have not 342 # changed, this cache will ensure that only the static podman binary is 343 # built. 344 CACHIX_AUTH_TOKEN: ENCRYPTED[df0d4d0a67474e8ea49cc503221dcb912b7e2ba45c8ec4bf2e5fd9c49a18ac21c24bacee59b5393355ed9e4358d2baef] 345 setup_script: *setup 346 main_script: *main 347 always: *binary_artifacts 348 349 350 # Confirm building the remote client, natively on a Mac OS-X VM. 351 osx_alt_build_task: 352 name: "OSX Cross" 353 alias: osx_alt_build 354 depends_on: 355 - build 356 env: 357 <<: *stdenvars 358 # OSX platform variation prevents this being included in alt_build_task 359 TEST_FLAVOR: "altbuild" 360 ALT_NAME: 'OSX Cross' 361 osx_instance: 362 image: 'catalina-base' 363 script: 364 - brew install go 365 - brew install go-md2man 366 - make podman-remote-release-darwin.zip 367 always: *binary_artifacts 368 369 370 # Verify podman is compatible with the docker python-module. 371 docker-py_test_task: 372 name: Docker-py Compat. 373 alias: docker-py_test 374 skip: *tags 375 only_if: *not_docs 376 depends_on: 377 - build 378 gce_instance: *standardvm 379 env: 380 <<: *stdenvars 381 TEST_FLAVOR: docker-py 382 TEST_ENVIRON: container 383 gopath_cache: *ro_gopath_cache 384 clone_script: *noop # Comes from cache 385 setup_script: *setup 386 main_script: *main 387 always: *runner_stats 388 389 390 # Does exactly what it says, execute the podman unit-tests on all primary 391 # platforms and release versions. 392 unit_test_task: 393 name: "Unit tests on $DISTRO_NV" 394 alias: unit_test 395 skip: *tags 396 only_if: *not_docs 397 depends_on: 398 - validate 399 matrix: 400 - env: *stdenvars 401 - env: *priorfedora_envvars 402 - env: *ubuntu_envvars 403 # Special-case: Rootless on latest Fedora (standard) VM 404 - name: "Rootless unit on $DISTRO_NV" 405 env: 406 <<: *stdenvars 407 PRIV_NAME: rootless 408 gce_instance: *standardvm 409 env: 410 TEST_FLAVOR: unit 411 clone_script: *noop # Comes from cache 412 gopath_cache: *ro_gopath_cache 413 setup_script: *setup 414 main_script: *main 415 always: *runner_stats 416 417 418 apiv2_test_task: 419 name: "APIv2 test on $DISTRO_NV" 420 alias: apiv2_test 421 only_if: *not_docs 422 skip: *tags 423 depends_on: 424 - validate 425 gce_instance: *standardvm 426 # Test is normally pretty quick, about 10-minutes. If it hangs, 427 # don't make developers wait the full 1-hour timeout. 428 timeout_in: 20m 429 env: 430 <<: *stdenvars 431 TEST_FLAVOR: apiv2 432 clone_script: *noop # Comes from cache 433 gopath_cache: *ro_gopath_cache 434 setup_script: *setup 435 main_script: *main 436 always: &logs_artifacts 437 <<: *html_artifacts 438 package_versions_script: '$SCRIPT_BASE/logcollector.sh packages' 439 df_script: '$SCRIPT_BASE/logcollector.sh df' 440 audit_log_script: '$SCRIPT_BASE/logcollector.sh audit' 441 journal_script: '$SCRIPT_BASE/logcollector.sh journal' 442 podman_system_info_script: '$SCRIPT_BASE/logcollector.sh podman' 443 time_script: '$SCRIPT_BASE/logcollector.sh time' 444 445 compose_test_task: 446 name: "compose test on $DISTRO_NV ($PRIV_NAME)" 447 alias: compose_test 448 only_if: *not_docs 449 skip: *tags 450 depends_on: 451 - validate 452 gce_instance: *standardvm 453 env: 454 <<: *stdenvars 455 TEST_FLAVOR: compose 456 matrix: 457 - env: 458 PRIV_NAME: root 459 - env: 460 PRIV_NAME: rootless 461 clone_script: *noop # Comes from cache 462 gopath_cache: *ro_gopath_cache 463 setup_script: *setup 464 main_script: *main 465 always: *logs_artifacts 466 467 468 # Execute the podman integration tests on all primary platforms and release 469 # versions, as root, without involving the podman-remote client. 470 local_integration_test_task: &local_integration_test_task 471 # Integration-test task name convention: 472 # <int.|sys.> <podman|remote> <Distro NV> <root|rootless> 473 name: &std_name_fmt "$TEST_FLAVOR $PODBIN_NAME $DISTRO_NV $PRIV_NAME $TEST_ENVIRON" 474 alias: local_integration_test 475 only_if: *not_docs 476 skip: *branches_and_tags 477 depends_on: 478 - unit_test 479 matrix: *platform_axis 480 gce_instance: *standardvm 481 timeout_in: 90m 482 env: 483 TEST_FLAVOR: int 484 clone_script: *noop # Comes from cache 485 gopath_cache: *ro_gopath_cache 486 setup_script: *setup 487 main_script: *main 488 always: &int_logs_artifacts 489 <<: *logs_artifacts 490 ginkgo_node_logs_artifacts: 491 path: ./test/e2e/ginkgo-node-*.log 492 type: text/plain 493 494 495 # Nearly identical to `local_integration_test` except all operations 496 # are performed through the podman-remote client vs a podman "server" 497 # running on the same host. 498 remote_integration_test_task: 499 <<: *local_integration_test_task 500 alias: remote_integration_test 501 env: 502 TEST_FLAVOR: int 503 PODBIN_NAME: remote 504 505 506 # Run the complete set of integration tests from inside a container. 507 # This verifies all/most operations function with "podman-in-podman". 508 container_integration_test_task: 509 name: *std_name_fmt 510 alias: container_integration_test 511 only_if: *not_docs 512 skip: *branches_and_tags 513 depends_on: 514 - unit_test 515 matrix: &fedora_vm_axis 516 - env: 517 DISTRO_NV: ${FEDORA_NAME} 518 _BUILD_CACHE_HANDLE: ${FEDORA_NAME}-build-${CIRRUS_BUILD_ID} 519 VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME} 520 CTR_FQIN: ${FEDORA_CONTAINER_FQIN} 521 - env: 522 DISTRO_NV: ${PRIOR_FEDORA_NAME} 523 _BUILD_CACHE_HANDLE: ${PRIOR_FEDORA_NAME}-build-${CIRRUS_BUILD_ID} 524 VM_IMAGE_NAME: ${PRIOR_FEDORA_CACHE_IMAGE_NAME} 525 CTR_FQIN: ${PRIOR_FEDORA_CONTAINER_FQIN} 526 gce_instance: *standardvm 527 timeout_in: 90m 528 env: 529 TEST_FLAVOR: int 530 TEST_ENVIRON: container 531 clone_script: *noop # Comes from cache 532 gopath_cache: *ro_gopath_cache 533 setup_script: *setup 534 main_script: *main 535 always: *int_logs_artifacts 536 537 538 # Execute most integration tests as a regular (non-root) user. 539 rootless_integration_test_task: 540 name: *std_name_fmt 541 alias: rootless_integration_test 542 only_if: *not_docs 543 skip: *branches_and_tags 544 depends_on: 545 - unit_test 546 matrix: *platform_axis 547 gce_instance: *standardvm 548 timeout_in: 90m 549 env: 550 TEST_FLAVOR: int 551 PRIV_NAME: rootless 552 clone_script: *noop # Comes from cache 553 gopath_cache: *ro_gopath_cache 554 setup_script: *setup 555 main_script: *main 556 always: *int_logs_artifacts 557 558 559 # Always run subsequent to integration tests. While parallelism is lost 560 # with runtime, debugging system-test failures can be more challenging 561 # for some golang developers. Otherwise the following tasks run across 562 # the same matrix as the integration-tests (above). 563 local_system_test_task: &local_system_test_task 564 name: *std_name_fmt 565 alias: local_system_test 566 skip: *tags 567 only_if: *not_docs 568 depends_on: 569 - local_integration_test 570 matrix: *platform_axis 571 gce_instance: *standardvm 572 env: 573 TEST_FLAVOR: sys 574 clone_script: *noop # Comes from cache 575 gopath_cache: *ro_gopath_cache 576 setup_script: *setup 577 main_script: *main 578 always: *logs_artifacts 579 580 581 remote_system_test_task: 582 <<: *local_system_test_task 583 alias: remote_system_test 584 depends_on: 585 - remote_integration_test 586 env: 587 TEST_FLAVOR: sys 588 PODBIN_NAME: remote 589 590 buildah_bud_test_task: 591 name: *std_name_fmt 592 alias: buildah_bud_test 593 skip: *tags 594 only_if: *not_docs 595 depends_on: 596 - local_integration_test 597 env: 598 TEST_FLAVOR: bud 599 DISTRO_NV: ${FEDORA_NAME} 600 # Not used here, is used in other tasks 601 VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME} 602 CTR_FQIN: ${FEDORA_CONTAINER_FQIN} 603 # ID for re-use of build output 604 _BUILD_CACHE_HANDLE: ${FEDORA_NAME}-build-${CIRRUS_BUILD_ID} 605 matrix: 606 - env: 607 PODBIN_NAME: podman 608 - env: 609 PODBIN_NAME: remote 610 gce_instance: *standardvm 611 timeout_in: 45m 612 clone_script: *noop 613 gopath_cache: *ro_gopath_cache 614 setup_script: *setup 615 main_script: *main 616 always: *int_logs_artifacts 617 618 rootless_system_test_task: 619 name: *std_name_fmt 620 alias: rootless_system_test 621 skip: *tags 622 only_if: *not_docs 623 depends_on: 624 - rootless_integration_test 625 matrix: *platform_axis 626 gce_instance: *standardvm 627 env: 628 TEST_FLAVOR: sys 629 PRIV_NAME: rootless 630 clone_script: *noop # Comes from cache 631 gopath_cache: *ro_gopath_cache 632 setup_script: *setup 633 main_script: *main 634 always: *logs_artifacts 635 636 upgrade_test_task: 637 name: "Upgrade test: from $PODMAN_UPGRADE_FROM" 638 alias: upgrade_test 639 skip: *tags 640 only_if: $CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' || $CIRRUS_CRON != '' 641 depends_on: 642 - local_system_test 643 matrix: 644 - env: 645 PODMAN_UPGRADE_FROM: v1.9.0 646 - env: 647 PODMAN_UPGRADE_FROM: v2.0.6 648 - env: 649 PODMAN_UPGRADE_FROM: v2.1.1 650 - env: 651 PODMAN_UPGRADE_FROM: v3.1.2 652 gce_instance: *standardvm 653 env: 654 TEST_FLAVOR: upgrade_test 655 DISTRO_NV: ${FEDORA_NAME} 656 VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME} 657 # ID for re-use of build output 658 _BUILD_CACHE_HANDLE: ${FEDORA_NAME}-build-${CIRRUS_BUILD_ID} 659 clone_script: *noop 660 gopath_cache: *ro_gopath_cache 661 setup_script: *setup 662 main_script: *main 663 always: *logs_artifacts 664 665 # This task is critical. It updates the "last-used by" timestamp stored 666 # in metadata for all VM images. This mechanism functions in tandem with 667 # an out-of-band pruning operation to remove disused VM images. 668 meta_task: 669 name: "VM img. keepalive" 670 alias: meta 671 container: 672 cpu: 2 673 memory: 2 674 image: quay.io/libpod/imgts:$IMAGE_SUFFIX 675 env: 676 # Space-separated list of images used by this repository state 677 IMGNAMES: >- 678 ${FEDORA_CACHE_IMAGE_NAME} 679 ${PRIOR_FEDORA_CACHE_IMAGE_NAME} 680 ${UBUNTU_CACHE_IMAGE_NAME} 681 BUILDID: "${CIRRUS_BUILD_ID}" 682 REPOREF: "${CIRRUS_REPO_NAME}" 683 GCPJSON: ENCRYPTED[3a198350077849c8df14b723c0f4c9fece9ebe6408d35982e7adf2105a33f8e0e166ed3ed614875a0887e1af2b8775f4] 684 GCPNAME: ENCRYPTED[2f9738ef295a706f66a13891b40e8eaa92a89e0e87faf8bed66c41eca72bf76cfd190a6f2d0e8444c631fdf15ed32ef6] 685 GCPPROJECT: libpod-218412 686 clone_script: *noop 687 script: /usr/local/bin/entrypoint.sh 688 689 690 # Status aggregator for all tests. This task simply ensures a defined 691 # set of tasks all passed, and allows confirming that based on the status 692 # of this task. 693 success_task: 694 name: "Total Success" 695 alias: success 696 # N/B: ALL tasks must be listed here, minus their '_task' suffix. 697 depends_on: 698 - ext_svc_check 699 - automation 700 - build 701 - validate 702 - bindings 703 - swagger 704 - consistency 705 - alt_build 706 - static_alt_build 707 - osx_alt_build 708 - docker-py_test 709 - unit_test 710 - apiv2_test 711 - compose_test 712 - local_integration_test 713 - remote_integration_test 714 - rootless_integration_test 715 - container_integration_test 716 - local_system_test 717 - remote_system_test 718 - rootless_system_test 719 - upgrade_test 720 - buildah_bud_test 721 - meta 722 container: *smallcontainer 723 env: 724 CTR_FQIN: ${FEDORA_CONTAINER_FQIN} 725 TEST_ENVIRON: container 726 clone_script: *noop 727 script: /bin/true 728 729 730 # When a new tag is pushed, confirm that the code and commits 731 # meet criteria for an official release. 732 release_task: 733 name: "Verify Release" 734 alias: release 735 only_if: *tags 736 depends_on: 737 - success 738 gce_instance: *standardvm 739 env: 740 <<: *stdenvars 741 TEST_FLAVOR: release 742 gopath_cache: *ro_gopath_cache 743 clone_script: *noop # Comes from cache 744 setup_script: *setup 745 main_script: *main 746 always: *binary_artifacts 747 748 749 # When preparing to release a new version, this task may be manually 750 # activated at the PR stage to verify the build is proper for a potential 751 # podman release. 752 # 753 # Note: This cannot use a YAML alias on 'release_task' as of this 754 # comment, it is incompatible with 'trigger_type: manual' 755 release_test_task: 756 name: "Optional Release Test" 757 alias: release_test 758 only_if: $CIRRUS_PR != '' 759 trigger_type: manual 760 depends_on: 761 - success 762 gce_instance: *standardvm 763 env: 764 <<: *stdenvars 765 TEST_FLAVOR: release 766 gopath_cache: *ro_gopath_cache 767 clone_script: *noop # Comes from cache 768 setup_script: *setup 769 main_script: *main 770 always: *binary_artifacts