mirror of
https://github.com/containers/podman.git
synced 2025-10-15 02:06:42 +08:00
Merge pull request #24360 from Luap99/cirrus-remove-tests-4.4
[v4.4.1-rhel] cirrus: remove functional tests
This commit is contained in:
730
.cirrus.yml
730
.cirrus.yml
@ -245,607 +245,6 @@ validate_task:
|
||||
main_script: *main
|
||||
always: *runner_stats
|
||||
|
||||
|
||||
# Confirm the result of building on at least one platform appears sane.
|
||||
# This confirms the binaries can be executed, checks --help vs docs, and
|
||||
# other essential post-build validation checks.
|
||||
validate_aarch64_task:
|
||||
name: "Validate $DISTRO_NV Build"
|
||||
alias: validate_aarch64
|
||||
# This task is primarily intended to catch human-errors early on, in a
|
||||
# PR. Skip it for branch-push, branch-create, and tag-push to improve
|
||||
# automation reliability/speed in those contexts. Any missed errors due
|
||||
# to nonsequential PR merging practices, will be caught on a future PR,
|
||||
# build or test task failures.
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *is_pr
|
||||
depends_on:
|
||||
- build_aarch64
|
||||
# golangci-lint is a very, very hungry beast.
|
||||
ec2_instance: *standard_build_ec2_aarch64
|
||||
env:
|
||||
<<: *stdenvars_aarch64
|
||||
TEST_FLAVOR: validate
|
||||
DISTRO_NV: ${FEDORA_AARCH64_NAME}
|
||||
# N/B: This script depends on ${DISTRO_NV} being defined for the task.
|
||||
clone_script: &get_gosrc_aarch64 |
|
||||
cd /tmp
|
||||
echo "$ARTCURL/build_aarch64/repo/repo.tbz"
|
||||
time $ARTCURL/build_aarch64/repo/repo.tbz
|
||||
time tar xjf /tmp/repo.tbz -C $GOSRC
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *runner_stats
|
||||
|
||||
|
||||
# Exercise the "libpod" API with a small set of common
|
||||
# operations to ensure they are functional.
|
||||
bindings_task:
|
||||
name: "Test Bindings"
|
||||
alias: bindings
|
||||
# Don't create task for PRs using [CI:DOCS] or [CI:BUILD]
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: >-
|
||||
$CIRRUS_PR != '' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:COPR.*' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:BUILD.*'
|
||||
depends_on:
|
||||
- build
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: bindings
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: &logs_artifacts
|
||||
<<: *runner_stats
|
||||
# Required for `contrib/cirrus/logformatter` to work properly
|
||||
html_artifacts:
|
||||
path: ./*.html
|
||||
type: text/html
|
||||
server_log_artifacts:
|
||||
path: ./podman-server.log
|
||||
type: text/plain
|
||||
df_script: '$SCRIPT_BASE/logcollector.sh df'
|
||||
audit_log_script: '$SCRIPT_BASE/logcollector.sh audit'
|
||||
journal_script: '$SCRIPT_BASE/logcollector.sh journal'
|
||||
podman_system_info_script: '$SCRIPT_BASE/logcollector.sh podman'
|
||||
time_script: '$SCRIPT_BASE/logcollector.sh time'
|
||||
|
||||
|
||||
# Build the "libpod" API documentation `swagger.yaml` and
|
||||
# publish it to google-cloud-storage (GCS).
|
||||
swagger_task:
|
||||
name: "Test Swagger"
|
||||
alias: swagger
|
||||
# Don't create task for [CI:BUILD] or multiarch builds
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: >-
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:BUILD.*' &&
|
||||
$CIRRUS_CRON != 'multiarch'
|
||||
depends_on:
|
||||
- build
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: swagger
|
||||
CTR_FQIN: 'quay.io/libpod/gcsupld:${IMAGE_SUFFIX}'
|
||||
GCPJSON: ENCRYPTED[927dc01e755eaddb4242b0845cf86c9098d1e3dffac38c70aefb1487fd8b4fe6dd6ae627b3bffafaba70e2c63172664e]
|
||||
GCPNAME: ENCRYPTED[c145e9c16b6fb88d476944a454bf4c1ccc84bb4ecaca73bdd28bdacef0dfa7959ebc8171a27b2e4064d66093b2cdba49]
|
||||
GCPPROJECT: 'libpod-218412'
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always:
|
||||
<<: *runner_stats
|
||||
swagger_artifacts:
|
||||
path: ./swagger.yaml
|
||||
type: text/plain
|
||||
|
||||
|
||||
# There are several other important variations of podman which
|
||||
# must always build successfully. Most of them are handled in
|
||||
# this task, though a few need dedicated tasks which follow.
|
||||
alt_build_task:
|
||||
name: "$ALT_NAME"
|
||||
alias: alt_build
|
||||
# Don't create task for [CI:DOCS] or multiarch builds
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: $CIRRUS_CRON != 'multiarch'
|
||||
depends_on:
|
||||
- build
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: "altbuild"
|
||||
gce_instance: *standardvm
|
||||
matrix:
|
||||
- env:
|
||||
ALT_NAME: 'Build Each Commit'
|
||||
- env:
|
||||
ALT_NAME: 'Windows Cross'
|
||||
- env:
|
||||
ALT_NAME: 'Build Without CGO'
|
||||
- env:
|
||||
ALT_NAME: 'Test build podman-next Copr RPM'
|
||||
- env:
|
||||
ALT_NAME: 'Alt Arch. Cross'
|
||||
- env:
|
||||
ALT_NAME: 'FreeBSD Cross'
|
||||
# This task cannot make use of the shared repo.tbz artifact.
|
||||
clone_script: *full_clone
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
# Produce a new repo.tbz artifact for consumption by 'artifacts' task.
|
||||
repo_prep_script: *repo_prep
|
||||
repo_artifacts: *repo_artifacts
|
||||
always: *runner_stats
|
||||
|
||||
|
||||
# Confirm building the remote client, natively on a Mac OS-X VM.
|
||||
osx_alt_build_task:
|
||||
name: "OSX Cross"
|
||||
alias: osx_alt_build
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: $CIRRUS_CRON != 'multiarch'
|
||||
depends_on:
|
||||
- build
|
||||
env:
|
||||
<<: *stdenvars
|
||||
# OSX platform variation prevents this being included in alt_build_task
|
||||
TEST_FLAVOR: "altbuild"
|
||||
ALT_NAME: 'OSX Cross'
|
||||
osx_instance:
|
||||
image: ghcr.io/cirruslabs/macos-ventura-base:latest
|
||||
setup_script:
|
||||
- brew install go
|
||||
- brew install go-md2man
|
||||
- go version
|
||||
build_amd64_script:
|
||||
- make podman-remote-release-darwin_amd64.zip
|
||||
build_arm64_script:
|
||||
- make podman-remote-release-darwin_arm64.zip
|
||||
build_pkginstaller_script:
|
||||
- cd contrib/pkginstaller
|
||||
- make ARCH=amd64 NO_CODESIGN=1 pkginstaller
|
||||
- make ARCH=aarch64 NO_CODESIGN=1 pkginstaller
|
||||
# This task cannot make use of the shared repo.tbz artifact and must
|
||||
# produce a new repo.tbz artifact for consumption by 'artifacts' task.
|
||||
repo_prep_script: *repo_prep
|
||||
repo_artifacts: *repo_artifacts
|
||||
always: *runner_stats
|
||||
|
||||
|
||||
# Verify podman is compatible with the docker python-module.
|
||||
docker-py_test_task:
|
||||
name: Docker-py Compat.
|
||||
alias: docker-py_test
|
||||
# Don't create task for tags, branches, or PRs w/ [CI:DOCS] or [CI:BUILD]
|
||||
# N/B: for PRs $CIRRUS_BRANCH == 'pull/<number>'
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: ¬_tag_branch_build_docs >-
|
||||
$CIRRUS_PR != '' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:COPR.*' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:BUILD.*'
|
||||
|
||||
depends_on:
|
||||
- build
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: docker-py
|
||||
TEST_ENVIRON: container
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *runner_stats
|
||||
|
||||
|
||||
# Does exactly what it says, execute the podman unit-tests on Fedora.
|
||||
unit_test_task:
|
||||
name: "Unit tests on $DISTRO_NV"
|
||||
alias: unit_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- validate
|
||||
matrix:
|
||||
- env: *stdenvars
|
||||
# Special-case: Rootless on latest Fedora (standard) VM
|
||||
- name: "Rootless unit on $DISTRO_NV"
|
||||
env:
|
||||
<<: *stdenvars
|
||||
PRIV_NAME: rootless
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
TEST_FLAVOR: unit
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
|
||||
apiv2_test_task:
|
||||
name: "APIv2 test on $DISTRO_NV ($PRIV_NAME)"
|
||||
alias: apiv2_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- validate
|
||||
gce_instance: *standardvm
|
||||
# Test is normally pretty quick, about 10-minutes. If it hangs,
|
||||
# don't make developers wait the full 1-hour timeout.
|
||||
timeout_in: 20m
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: apiv2
|
||||
matrix:
|
||||
- env:
|
||||
PRIV_NAME: root
|
||||
- env:
|
||||
PRIV_NAME: rootless
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
|
||||
compose_test_task:
|
||||
name: "$TEST_FLAVOR test on $DISTRO_NV ($PRIV_NAME)"
|
||||
alias: compose_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- validate
|
||||
gce_instance: *standardvm
|
||||
matrix:
|
||||
- env:
|
||||
TEST_FLAVOR: compose
|
||||
PRIV_NAME: root
|
||||
- env:
|
||||
TEST_FLAVOR: compose
|
||||
PRIV_NAME: rootless
|
||||
- env:
|
||||
TEST_FLAVOR: compose_v2
|
||||
PRIV_NAME: root
|
||||
- env:
|
||||
TEST_FLAVOR: compose_v2
|
||||
PRIV_NAME: rootless
|
||||
env:
|
||||
<<: *stdenvars
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
|
||||
# versions, as root, without involving the podman-remote client.
|
||||
local_integration_test_task: &local_integration_test_task
|
||||
# Integration-test task name convention:
|
||||
# <int.|sys.> <podman|remote> <Distro NV> <root|rootless>
|
||||
name: &std_name_fmt "$TEST_FLAVOR $PODBIN_NAME $DISTRO_NV $PRIV_NAME $TEST_ENVIRON"
|
||||
alias: local_integration_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- unit_test
|
||||
matrix: *platform_axis
|
||||
gce_instance: *standardvm
|
||||
timeout_in: 90m
|
||||
env:
|
||||
TEST_FLAVOR: int
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: &int_logs_artifacts
|
||||
<<: *logs_artifacts
|
||||
ginkgo_node_logs_artifacts:
|
||||
path: ./test/e2e/ginkgo-node-*.log
|
||||
type: text/plain
|
||||
|
||||
|
||||
# Nearly identical to `local_integration_test` except all operations
|
||||
# are performed through the podman-remote client vs a podman "server"
|
||||
# running on the same host.
|
||||
remote_integration_test_task:
|
||||
<<: *local_integration_test_task
|
||||
alias: remote_integration_test
|
||||
env:
|
||||
TEST_FLAVOR: int
|
||||
PODBIN_NAME: remote
|
||||
|
||||
|
||||
# Run the complete set of integration tests from inside a container.
|
||||
# This verifies all/most operations function with "podman-in-podman".
|
||||
container_integration_test_task:
|
||||
name: *std_name_fmt
|
||||
alias: container_integration_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- unit_test
|
||||
matrix: &fedora_vm_axis
|
||||
- env:
|
||||
DISTRO_NV: ${FEDORA_NAME}
|
||||
VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME}
|
||||
CTR_FQIN: ${FEDORA_CONTAINER_FQIN}
|
||||
CI_DESIRED_RUNTIME: crun
|
||||
CI_DESIRED_NETWORK: netavark
|
||||
- env:
|
||||
DISTRO_NV: ${PRIOR_FEDORA_NAME}
|
||||
VM_IMAGE_NAME: ${PRIOR_FEDORA_CACHE_IMAGE_NAME}
|
||||
CTR_FQIN: ${PRIOR_FEDORA_CONTAINER_FQIN}
|
||||
CI_DESIRED_RUNTIME: crun
|
||||
CI_DESIRED_NETWORK: cni
|
||||
gce_instance: *standardvm
|
||||
timeout_in: 90m
|
||||
env:
|
||||
TEST_FLAVOR: int
|
||||
TEST_ENVIRON: container
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *int_logs_artifacts
|
||||
|
||||
|
||||
# Execute most integration tests as a regular (non-root) user.
|
||||
rootless_integration_test_task:
|
||||
name: *std_name_fmt
|
||||
alias: rootless_integration_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- unit_test
|
||||
matrix: *platform_axis
|
||||
gce_instance: *standardvm
|
||||
timeout_in: 90m
|
||||
env:
|
||||
TEST_FLAVOR: int
|
||||
PRIV_NAME: rootless
|
||||
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
|
||||
# the same matrix as the integration-tests (above).
|
||||
local_system_test_task: &local_system_test_task
|
||||
name: *std_name_fmt
|
||||
alias: local_system_test
|
||||
only_if: ¬_tag_build_docs_multiarch >-
|
||||
$CIRRUS_TAG == '' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:BUILD.*' &&
|
||||
$CIRRUS_CRON != 'multiarch'
|
||||
depends_on:
|
||||
- build
|
||||
- local_integration_test
|
||||
matrix: *platform_axis
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
TEST_FLAVOR: sys
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
|
||||
local_system_test_aarch64_task: &local_system_test_task_aarch64
|
||||
name: *std_name_fmt
|
||||
alias: local_system_test_aarch64
|
||||
# Don't create task for tags, or if using [CI:DOCS], [CI:BUILD], multiarch
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_build_docs_multiarch
|
||||
depends_on:
|
||||
- build_aarch64
|
||||
- local_integration_test
|
||||
ec2_instance: *standard_build_ec2_aarch64
|
||||
env:
|
||||
<<: *stdenvars_aarch64
|
||||
TEST_FLAVOR: sys
|
||||
DISTRO_NV: ${FEDORA_AARCH64_NAME}
|
||||
clone_script: *get_gosrc_aarch64
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
|
||||
remote_system_test_task:
|
||||
<<: *local_system_test_task
|
||||
alias: remote_system_test
|
||||
depends_on:
|
||||
- build
|
||||
- remote_integration_test
|
||||
env:
|
||||
TEST_FLAVOR: sys
|
||||
PODBIN_NAME: remote
|
||||
|
||||
|
||||
remote_system_test_aarch64_task:
|
||||
<<: *local_system_test_task_aarch64
|
||||
alias: remote_system_test_aarch64
|
||||
depends_on:
|
||||
- build_aarch64
|
||||
- remote_integration_test
|
||||
env:
|
||||
TEST_FLAVOR: sys
|
||||
PODBIN_NAME: remote
|
||||
|
||||
|
||||
rootless_remote_system_test_task:
|
||||
matrix:
|
||||
# Minimal sanity testing: only the latest Fedora
|
||||
- env:
|
||||
DISTRO_NV: ${FEDORA_NAME}
|
||||
# Not used here, is used in other tasks
|
||||
VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME}
|
||||
CTR_FQIN: ${FEDORA_CONTAINER_FQIN}
|
||||
CI_DESIRED_RUNTIME: crun
|
||||
CI_DESIRED_NETWORK: netavark
|
||||
<<: *local_system_test_task
|
||||
alias: rootless_remote_system_test
|
||||
depends_on:
|
||||
- build
|
||||
- remote_integration_test
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
TEST_FLAVOR: sys
|
||||
PODBIN_NAME: remote
|
||||
PRIV_NAME: rootless
|
||||
|
||||
|
||||
rootless_system_test_task:
|
||||
name: *std_name_fmt
|
||||
alias: rootless_system_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_build_docs_multiarch
|
||||
depends_on:
|
||||
- build
|
||||
- rootless_integration_test
|
||||
matrix: *platform_axis
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
TEST_FLAVOR: sys
|
||||
PRIV_NAME: rootless
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
minikube_test_task:
|
||||
name: *std_name_fmt
|
||||
alias: minikube_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_build_docs_multiarch
|
||||
depends_on:
|
||||
- build
|
||||
- rootless_system_test
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: minikube
|
||||
PRIV_NAME: rootless
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
buildah_bud_test_task:
|
||||
name: *std_name_fmt
|
||||
alias: buildah_bud_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- local_integration_test
|
||||
env:
|
||||
TEST_FLAVOR: bud
|
||||
DISTRO_NV: ${FEDORA_NAME}
|
||||
# Not used here, is used in other tasks
|
||||
VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME}
|
||||
CTR_FQIN: ${FEDORA_CONTAINER_FQIN}
|
||||
CI_DESIRED_NETWORK: netavark
|
||||
matrix:
|
||||
- env:
|
||||
PODBIN_NAME: podman
|
||||
- env:
|
||||
PODBIN_NAME: remote
|
||||
gce_instance: *standardvm
|
||||
timeout_in: 45m
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *int_logs_artifacts
|
||||
|
||||
|
||||
upgrade_test_task:
|
||||
name: "Upgrade test: from $PODMAN_UPGRADE_FROM"
|
||||
alias: upgrade_test
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: *not_tag_branch_build_docs
|
||||
depends_on:
|
||||
- build
|
||||
- local_system_test
|
||||
matrix:
|
||||
- env:
|
||||
PODMAN_UPGRADE_FROM: v2.1.1
|
||||
CI_DESIRED_NETWORK: cni
|
||||
- env:
|
||||
PODMAN_UPGRADE_FROM: v3.1.2
|
||||
CI_DESIRED_NETWORK: cni
|
||||
- env:
|
||||
PODMAN_UPGRADE_FROM: v3.4.4
|
||||
CI_DESIRED_NETWORK: cni
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
TEST_FLAVOR: upgrade_test
|
||||
DISTRO_NV: ${FEDORA_NAME}
|
||||
VM_IMAGE_NAME: ${FEDORA_CACHE_IMAGE_NAME}
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
always: *logs_artifacts
|
||||
|
||||
|
||||
image_build_task: &image-build
|
||||
name: "Build multi-arch $CTXDIR"
|
||||
alias: image_build
|
||||
# Some of these container images take > 1h to build, limit
|
||||
# this task to a specific Cirrus-Cron entry with this name.
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: $CIRRUS_CRON == 'multiarch'
|
||||
timeout_in: 120m # emulation is sssllllooooowwww
|
||||
gce_instance:
|
||||
<<: *standardvm
|
||||
image_name: build-push-${IMAGE_SUFFIX}
|
||||
# More muscle required for parallel multi-arch build
|
||||
type: "n2-standard-4"
|
||||
matrix:
|
||||
- env:
|
||||
CTXDIR: contrib/podmanimage/upstream
|
||||
- env:
|
||||
CTXDIR: contrib/podmanimage/testing
|
||||
- env:
|
||||
CTXDIR: contrib/podmanimage/stable
|
||||
- env:
|
||||
CTXDIR: contrib/hello
|
||||
env:
|
||||
DISTRO_NV: "${FEDORA_NAME}" # Required for repo cache extraction
|
||||
PODMAN_USERNAME: ENCRYPTED[b9f0f2550029dd2196e086d9dd6c2d1fec7e328630b15990d9bb610f9fcccb5baab8b64a8c3e72b0c1d0f5917cf65aa1]
|
||||
PODMAN_PASSWORD: ENCRYPTED[e3444f6072853f0c8db7f964ead5e2204116af485469fa0de367f26b9316b460fd842a9882f552b9e9a83bbaf650d8b4]
|
||||
CONTAINERS_USERNAME: ENCRYPTED[54a372d5f22f424173c114c6fb25c3214956cad323d5b285c7393a71041884ce96471d0ff733774e5dab9fa5a3c8795c]
|
||||
CONTAINERS_PASSWORD: ENCRYPTED[4ecc3fb534935095a99fb1f2e320ac6bc87f3e7e186746e41cbcc4b5f5379a014b9fc8cc90e1f3d5abdbaf31580a4ab9]
|
||||
main_script:
|
||||
- set -a; source /etc/automation_environment; set +a
|
||||
- main.sh $CIRRUS_REPO_CLONE_URL $CTXDIR
|
||||
|
||||
|
||||
test_image_build_task:
|
||||
<<: *image-build
|
||||
alias: test_image_build
|
||||
# Allow this to run inside a PR w/ [CI:BUILD] only.
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: $CIRRUS_PR != '' && $CIRRUS_CHANGE_TITLE =~ '.*CI:BUILD.*'
|
||||
# This takes a LONG time, only run when requested. N/B: Any task
|
||||
# made to depend on this one will block FOREVER unless triggered.
|
||||
# DO NOT ADD THIS TASK AS DEPENDENCY FOR `success_task`.
|
||||
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.
|
||||
@ -888,30 +287,6 @@ success_task:
|
||||
- build
|
||||
- build_aarch64
|
||||
- validate
|
||||
- validate_aarch64
|
||||
- bindings
|
||||
- swagger
|
||||
- alt_build
|
||||
- osx_alt_build
|
||||
- docker-py_test
|
||||
- unit_test
|
||||
- apiv2_test
|
||||
- compose_test
|
||||
- local_integration_test
|
||||
- remote_integration_test
|
||||
- container_integration_test
|
||||
- rootless_integration_test
|
||||
- local_system_test
|
||||
- local_system_test_aarch64
|
||||
- remote_system_test
|
||||
- remote_system_test_aarch64
|
||||
- rootless_system_test
|
||||
- rootless_remote_system_test
|
||||
- minikube_test
|
||||
- buildah_bud_test
|
||||
#- rootless_gitlab_test
|
||||
- upgrade_test
|
||||
- image_build
|
||||
- meta
|
||||
container: &smallcontainer
|
||||
image: ${CTR_FQIN}
|
||||
@ -924,108 +299,3 @@ success_task:
|
||||
TEST_ENVIRON: container
|
||||
clone_script: *noop
|
||||
script: *noop
|
||||
|
||||
# WARNING: Most of the artifacts captured here are also have their
|
||||
# permalinks present in the `DOWNLOADS.md` file. Any changes made
|
||||
# here, should probably be reflected in that document.
|
||||
artifacts_task:
|
||||
name: "Artifacts"
|
||||
alias: artifacts
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: >-
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:DOCS.*' &&
|
||||
$CIRRUS_CHANGE_TITLE !=~ '.*CI:COPR.*' &&
|
||||
$CIRRUS_CRON != 'multiarch'
|
||||
depends_on:
|
||||
- success
|
||||
# This task is a secondary/convenience for downstream consumers, don't
|
||||
# block development progress if there is a failure in a PR, only break
|
||||
# when running on branches or tags.
|
||||
allow_failures: $CIRRUS_PR != ''
|
||||
container: *smallcontainer
|
||||
env:
|
||||
CTR_FQIN: ${FEDORA_CONTAINER_FQIN}
|
||||
TEST_ENVIRON: container
|
||||
# In order to keep the download URL and Cirrus-CI artifact.zip contents
|
||||
# simple, nothing should exist in $CIRRUS_WORKING_DIR except for artifacts.
|
||||
clone_script: *noop
|
||||
fedora_binaries_script:
|
||||
- mkdir -p /tmp/fed
|
||||
- cd /tmp/fed
|
||||
- $ARTCURL/Build%20for%20${FEDORA_NAME}/repo/repo.tbz
|
||||
- tar xjf repo.tbz
|
||||
- cp ./bin/* $CIRRUS_WORKING_DIR/
|
||||
alt_binaries_script:
|
||||
- mkdir -p /tmp/alt
|
||||
- cd /tmp/alt
|
||||
- $ARTCURL/Alt%20Arch.%20Cross/repo/repo.tbz
|
||||
- tar xjf repo.tbz
|
||||
- mv ./*.tar.gz $CIRRUS_WORKING_DIR/
|
||||
win_binaries_script:
|
||||
- mkdir -p /tmp/win
|
||||
- cd /tmp/win
|
||||
- $ARTCURL/Windows%20Cross/repo/repo.tbz
|
||||
- tar xjf repo.tbz
|
||||
- mv ./podman-remote*.zip ./*.msi $CIRRUS_WORKING_DIR/
|
||||
osx_binaries_script:
|
||||
- mkdir -p /tmp/osx
|
||||
- cd /tmp/osx
|
||||
- $ARTCURL/OSX%20Cross/repo/repo.tbz
|
||||
- tar xjf repo.tbz
|
||||
- mv ./podman-remote-release-darwin_*.zip $CIRRUS_WORKING_DIR/
|
||||
- mv ./contrib/pkginstaller/out/podman-installer-macos-*.pkg $CIRRUS_WORKING_DIR/
|
||||
always:
|
||||
contents_script: ls -la $CIRRUS_WORKING_DIR
|
||||
# Produce downloadable files and an automatic zip-file accessible
|
||||
# by a consistent URL, based on contents of $CIRRUS_WORKING_DIR
|
||||
# Ref: https://cirrus-ci.org/guide/writing-tasks/#latest-build-artifacts
|
||||
binary_artifacts:
|
||||
path: ./*
|
||||
type: application/octet-stream
|
||||
|
||||
|
||||
# When a new tag is pushed, confirm that the code and commits
|
||||
# meet criteria for an official release.
|
||||
release_task:
|
||||
name: "Verify Release"
|
||||
alias: release
|
||||
# This should _only_ run for new tags
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: $CIRRUS_TAG != ''
|
||||
depends_on:
|
||||
- build
|
||||
- success
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: release
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
|
||||
|
||||
# When preparing to release a new version, this task may be manually
|
||||
# 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:
|
||||
name: "Optional Release Test"
|
||||
alias: release_test
|
||||
# Release-PRs always include "release" or "Bump" in the title
|
||||
# Docs: ./contrib/cirrus/CIModes.md
|
||||
only_if: $CIRRUS_CHANGE_TITLE =~ '.*((release)|(bump)).*'
|
||||
# Allow running manually only as part of release-related builds
|
||||
# see RELEASE_PROCESS.md
|
||||
trigger_type: manual
|
||||
depends_on:
|
||||
- build
|
||||
- success
|
||||
gce_instance: *standardvm
|
||||
env:
|
||||
<<: *stdenvars
|
||||
TEST_FLAVOR: release
|
||||
clone_script: *get_gosrc
|
||||
setup_script: *setup
|
||||
main_script: *main
|
||||
|
Reference in New Issue
Block a user