You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(ci): multi-arch e2e-runner image & add oc-mirror and podman (#5036)
* chore(ci): add podman and oc-mirror to e2e-runner image
Bump OC client to 4.22.3 and install oc-mirror alongside oc for the upcoming disconnected CI job.
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore(ci): make e2e-runner Dockerfile multi-arch (amd64 + arm64)
Parameterize all architecture-hardcoded tool downloads to support
building the e2e-runner image for both linux/amd64 and linux/arm64.
Changes:
- Pin base image to manifest list digest (supports both platforms)
- Add ARG TARGETARCH for dynamic arch resolution
- Helm, oc, oc-mirror, ocm-cli, yq, opm: use TARGETARCH in URLs
- AWS CLI: use $(uname -m) for native x86_64/aarch64 mapping
- umoci: upgrade v0.4.7 -> v0.6.0 (first version with arm64 binaries)
- Operator SDK: already multi-arch, unchanged
- Azure/GCloud/apt packages: already arch-agnostic, unchanged
- Remove unused Go env vars (GO_VERSION, GO_SHA256, GOPATH)
- local-run.sh: remove --platform=linux/amd64 from podman pull
Tested: both images build and all tools verified on both architectures.
Assisted-by: OpenCode
* chore(ci): add multi-arch build to e2e-runner workflow
Add matrix strategy (ubuntu-24.04 + ubuntu-24.04-arm) to build the
e2e-runner image natively on both amd64 and arm64 runners. A merge
job assembles the per-arch digests into a multi-arch manifest list.
- build-image: matrix builds per-arch images, pushes arch-specific tags,
exports digest as artifact
- merge: downloads digests, creates multi-arch manifest with
docker buildx imagetools create, tags with branch and branch-sha
Assisted-by: OpenCode
* fix(ci): clean up AWS CLI install artifacts in e2e-runner Dockerfile
Remove the downloaded zip and extracted aws/ directory after install
to reduce image size.
Assisted-by: OpenCode
* fix(ci): add apt cleanup to skopeo/podman install step
Add apt-get clean and list removal to match all other apt-get install
blocks in the Dockerfile and reduce layer size.
Assisted-by: OpenCode
* fix(ci): pin merge job runner to ubuntu-24.04
Pin the merge job to ubuntu-24.04 for consistency with the build jobs
instead of using ubuntu-latest.
Assisted-by: OpenCode
* chore(ci): run e2e-runner build as PR check on Dockerfile changes
Add pull_request trigger so the e2e-runner image is built (without
pushing) on PRs that modify .ci/images/Dockerfile or .yarnrc.yml.
This catches build failures before merge.
- Add pull_request trigger with same path filters
- Guard push-only steps (login, digest export, merge) with event check
- Widen branch glob from 'release-1.*' to 'release-*' for future majors
- Use PR number in concurrency group and image tag
Assisted-by: OpenCode
* chore(e2e): add --runner-image flag to local-run.sh
Add -i/--runner-image CLI parameter to override the e2e runner
container image. Defaults to quay.io/rhdh-community/rhdh-e2e-runner:main.
Local images (localhost/ prefix) skip the podman pull step.
Assisted-by: OpenCode
* fix(e2e): fix TTY flag in local-run.sh and vault arch in container-init.sh
- local-run.sh: remove -t from podman run flags. The -t (allocate TTY)
is incompatible with piping through tee, causing a spurious exit
code 127 when bash misparses continuation lines. The -i flag alone
is sufficient.
- container-init.sh: use dpkg --print-architecture instead of
hardcoded amd64 for the vault binary download, so arm64 containers
get the native binary instead of relying on QEMU emulation.
Assisted-by: OpenCode
* fix(e2e): skip podman pull for local runner images
Re-add the localhost/ prefix check that was lost during rebase.
When using --runner-image localhost/..., skip the pull step since
the image is already available locally.
Assisted-by: OpenCode
* fix(e2e): show podman pull errors instead of suppressing stderr
Remove 2>/dev/null from podman pull so auth, network, and tag errors
are visible to the user when a pull fails.
Assisted-by: OpenCode
* fix(ci): add timeout-minutes to e2e-runner merge job
Add timeout-minutes: 20 to the merge job to prevent hangs on
registry hiccups. Aligns with the build-image job which already
has an explicit timeout.
Assisted-by: OpenCode
* fix(e2e): respect RUNNER_IMAGE env var in local-run.sh
Use ${RUNNER_IMAGE:-default} so an exported env var is not silently
clobbered by the hardcoded default. The --runner-image CLI flag
still takes precedence over both.
Assisted-by: OpenCode
* fix(e2e): add comment explaining why -t is omitted from podman run
Document that -t (TTY allocation) is intentionally omitted because
stdout is piped through tee and CI has no TTY. Prevents future
contributors from adding it back.
Assisted-by: OpenCode
* chore(ci): set 1-week expiry on per-arch e2e-runner tags
Add quay.expires-after=1w label to per-arch images so intermediate
tags (main-amd64, main-arm64, etc.) are automatically cleaned up
by Quay after one week. The multi-arch manifest tags are unaffected.
Assisted-by: OpenCode
---------
Co-authored-by: Cursor <cursoragent@cursor.com>
0 commit comments