diff options
author | Chris Evich <cevich@redhat.com> | 2022-03-10 12:51:47 -0500 |
---|---|---|
committer | Chris Evich <cevich@redhat.com> | 2022-03-28 16:56:28 -0400 |
commit | f6963cea130133086f739173b55d1af74a680fef (patch) | |
tree | c021fa21bce3432686595cb2b35bf483d1130b06 /.cirrus.yml | |
parent | 914e9b3f7057394401b45bbb732fb573414356ff (diff) | |
download | podman-f6963cea130133086f739173b55d1af74a680fef.tar.gz podman-f6963cea130133086f739173b55d1af74a680fef.tar.bz2 podman-f6963cea130133086f739173b55d1af74a680fef.zip |
Cirrus: Build multi-arch images + manifests
Github-actions for large/complex tasks is hard to read and maintain.
Reimplement the multi-arch image build workflow into a set of bash
scripts that use all native contrainer-org tooling. This requires
a special VM image setup with emulation to build foreign architectures.
It also requires renaming the `helloimage` directory, because the build
script uses the directory name in the image FQIN.
Signed-off-by: Chris Evich <cevich@redhat.com>
Diffstat (limited to '.cirrus.yml')
-rw-r--r-- | .cirrus.yml | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/.cirrus.yml b/.cirrus.yml index ae5463427..8bf01bb50 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -38,7 +38,7 @@ env: UBUNTU_NAME: "ubuntu-2110" # Google-cloud VM Images - IMAGE_SUFFIX: "c5814666029957120" + IMAGE_SUFFIX: "c6261670816251904" FEDORA_CACHE_IMAGE_NAME: "fedora-${IMAGE_SUFFIX}" PRIOR_FEDORA_CACHE_IMAGE_NAME: "prior-fedora-${IMAGE_SUFFIX}" UBUNTU_CACHE_IMAGE_NAME: "ubuntu-${IMAGE_SUFFIX}" @@ -743,6 +743,39 @@ upgrade_test_task: always: *logs_artifacts +image_build_task: + 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. + only_if: $CIRRUS_CRON == 'multiarch' + depends_on: + - ext_svc_check + 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" + env: + PODMAN_USERNAME: ENCRYPTED[b9f0f2550029dd2196e086d9dd6c2d1fec7e328630b15990d9bb610f9fcccb5baab8b64a8c3e72b0c1d0f5917cf65aa1] + PODMAN_PASSWORD: ENCRYPTED[e3444f6072853f0c8db7f964ead5e2204116af485469fa0de367f26b9316b460fd842a9882f552b9e9a83bbaf650d8b4] + CONTAINERS_USERNAME: ENCRYPTED[54a372d5f22f424173c114c6fb25c3214956cad323d5b285c7393a71041884ce96471d0ff733774e5dab9fa5a3c8795c] + CONTAINERS_PASSWORD: ENCRYPTED[4ecc3fb534935095a99fb1f2e320ac6bc87f3e7e186746e41cbcc4b5f5379a014b9fc8cc90e1f3d5abdbaf31580a4ab9] + matrix: + - env: + CTXDIR: contrib/podmanimage/upstream + - env: + CTXDIR: contrib/podmanimage/testing + - env: + CTXDIR: contrib/podmanimage/stable + - env: + CTXDIR: contrib/hello + script: + - set -a; source /etc/automation_environment; set +a + - main.sh $CIRRUS_REPO_CLONE_URL $CTXDIR + + # 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. @@ -759,6 +792,7 @@ meta_task: ${FEDORA_CACHE_IMAGE_NAME} ${PRIOR_FEDORA_CACHE_IMAGE_NAME} ${UBUNTU_CACHE_IMAGE_NAME} + build-push-${IMAGE_SUFFIX} BUILDID: "${CIRRUS_BUILD_ID}" REPOREF: "${CIRRUS_REPO_NAME}" GCPJSON: ENCRYPTED[3a198350077849c8df14b723c0f4c9fece9ebe6408d35982e7adf2105a33f8e0e166ed3ed614875a0887e1af2b8775f4] @@ -801,6 +835,7 @@ success_task: - rootless_gitlab_test - upgrade_test - buildah_bud_test + - image_build - meta container: *smallcontainer env: |