Conversation
| podman manifest create "$IMAGE_REPO:$VERSION" >&2 | ||
| for ref in "${RELEASE_IMAGE_TAGS[@]}"; do | ||
| podman manifest add "$IMAGE_REPO:$VERSION" "docker://$ref" | ||
| local dest_repo="$1" | ||
| local image_tags="$2" | ||
| podman manifest create "$dest_repo:$VERSION" >&2 | ||
| for ref in "${image_tags[*]}"; do | ||
| podman manifest add "$dest_repo:$VERSION" "docker://$ref" | ||
| done | ||
| podman manifest push "$IMAGE_REPO:$VERSION" "$IMAGE_REPO:$VERSION" | ||
| podman manifest push "$IMAGE_REPO:$VERSION" "$IMAGE_REPO:latest" | ||
| podman manifest push "$dest_repo:$VERSION" "$dest_repo:$VERSION" | ||
| podman manifest push "$dest_repo:$VERSION" "$dest_repo:latest" | ||
| } | ||
|
|
||
| docker_create_manifest(){ | ||
| local amend_images_options | ||
| for image in "${RELEASE_IMAGE_TAGS[@]}"; do | ||
| amend_images_options+="--amend $image" | ||
| done | ||
| local dest_repo="$1" | ||
| local image_tags="$2" | ||
| # use docker cli directly for clarity, as this is a docker-only func | ||
| docker manifest create "$IMAGE_REPO:$VERSION" "${RELEASE_IMAGE_TAGS[@]}" >&2 | ||
| docker tag "$IMAGE_REPO:$VERSION" "$IMAGE_REPO:latest" | ||
| docker manifest push "$IMAGE_REPO:$VERSION" | ||
| docker manifest push "$IMAGE_REPO:latest" | ||
| docker manifest create "$dest_repo:$VERSION" "${image_tags[*]}" >&2 | ||
| docker tag "$dest_repo:$VERSION" "$dest_repo:latest" | ||
| docker manifest push "$dest_repo:$VERSION" | ||
| docker manifest push "$dest_repo:latest" |
There was a problem hiding this comment.
These functions are made generic to support standalone and AIO build processes.
| # publish containerized microshift | ||
| build_container_images_artifacts || exit 1 | ||
| STAGE_DIR=$(stage_release_image_binaries) || exit 1 | ||
| push_container_image_artifacts || exit 1 | ||
| push_container_manifest "$IMAGE_REPO" "${RELEASE_IMAGE_TAGS[@]}" || exit 1 | ||
|
|
||
| # publish binaries | ||
| UPLOAD_URL="$(git_create_release "$API_DATA" "$TOKEN")" || exit 1 | ||
| git_post_artifacts "$STAGE_DIR" "$UPLOAD_URL" "$TOKEN" || exit 1 | ||
|
|
||
| # publish aio container | ||
| build_aio_container_images_artifacts || exit 1 | ||
| push_aio_container_image_artifacts || exit 1 | ||
| push_container_manifest "$AIO_IMAGE_REPO" "${AIO_RELEASE_IMAGE_TAGS[@]}" || exit 1 |
There was a problem hiding this comment.
The only changes here are to space out the existing steps into logical groupings, without mutating the order, and to add the AIO steps last. Added parameter passing to functions that were made generic above.
|
you had a tiny conflict, it's resolved now. I only wonder how long will it take to create both images, the problem is that we build the arm64 image compiling microshift under qemu-static-arm64, it'd be far more efficient to just build the microshift-arm64 binary, and then have a dockerfile that copied it inside (similar to packaging/images/components) |
|
/lgtm |
|
@copejon: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
/LGTM merging |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: cooktheryan, mangelajo The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Which issue(s) this PR addresses:
Closes #469
This PR adds a process for building, tagging, and releasing multi-arch AIO container images to quay.io/microshift/microshift-aio.