-
Notifications
You must be signed in to change notification settings - Fork 2.6k
fix(workflow): use runners with different architectures instead of QEMU #12322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
fix(workflow): use runners with different architectures instead of QEMU #12322
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR replaces QEMU-based multi-arch builds with native architecture runners to speed up the apisix:dev
image build and reuse previous images before "Test APISIX".
- Install runtime libyaml via
apt-get
instead of copying from build stage - Update etcd service image version in Docker Compose
- Refactor Makefile targets for architecture-specific builds, tags, and manifest merging
- Update GitHub Actions to use a matrix of native runners and split build/push and manifest merge steps
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
docker/debian-dev/Dockerfile | Install libyaml via apt and remove old manual copy |
docker/compose/docker-compose-master.yaml | Bump etcd image to 3.6 and remove explicit user: root |
Makefile | Add TARGETARCH build arg, separate push-on-debian-dev and merge-tags |
.github/workflows/push-dev-image-on-commit.yml | Use matrix runners for amd64 /arm64 , remove QEMU steps, split jobs |
Comments suppressed due to low confidence (3)
docker/compose/docker-compose-master.yaml:37
- Removing the explicit
user: root
may cause permission issues with the default user inbitnami/etcd:3.6
. Consider reinstating the requireduser
setting or validating file ownership.
image: bitnami/etcd:3.6
.github/workflows/push-dev-image-on-commit.yml:63
- The
build-test-push
job runsmake push-on-debian-dev
without first logging into Docker Hub. Add adocker/login-action
step before the push to ensure authentication.
make push-on-debian-dev
Makefile:519
- [nitpick] Using
docker manifest
requires the CLI experimental feature. EnsureDOCKER_CLI_EXPERIMENTAL=enabled
is set or switch to adocker buildx
–based manifest workflow to avoid errors on some environments.
$(ENV_DOCKER) manifest create $(IMAGE_NAME):dev \
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
…v-image-on-commit
This is much faster than the previous method, so please review it as soon as possible.
|
@membphis ping |
Description
Depend on #12328, #12329
What:
This PR changed the original method of using qemu to build in runners with different architectures.
How:
ref docker/buildx#574 (comment)
Why:
This can reuse the image built before
Test APISIX
, and significantly speeds up the build of theapisix:dev
image because it's built on native arm64 or amd64.It also enables simple test step
Test APISIX
that were performed only in amd64 for arm64 image.Which issue(s) this PR fixes:
Fixes #
Checklist