From b32781e2807f82af262493e298d504f8bb387bed Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sun, 10 May 2026 13:00:03 +0800 Subject: [PATCH] ci: remove qemu from companion edge deploy workflow (#6282) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - replace QEMU-based multi-platform build in `.github/workflows/companion-deploy.yml` with native runner matrix builds - build amd64 on `ubuntu-24.04` and arm64 on `ubuntu-24.04-arm` - push architecture-specific tags (`edge-amd64`, `edge-arm64`) and publish `transloadit/companion:edge` as a manifest that references both - add explicit workflow permissions (`contents: read`) and keep workflow expression formatting consistent - remove conflicting `DOCKER_BUILDKIT`/`COMPOSE_DOCKER_CLI_BUILD` env overrides from the docker job ## Validation - `corepack yarn check:ci` ✅ - baseline full run before edits: `corepack yarn check:ci && corepack yarn build && corepack yarn test` (test step had pre-existing failures in `@uppy/utils` due `Promise.withResolvers` in this environment) - parallel validation (Code Review + CodeQL) ✅ ## TODO - [ ] do the same for release? https://github.com/transloadit/uppy/blob/main/.github/workflows/release.yml --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: mifi <402547+mifi@users.noreply.github.com> Co-authored-by: Mikael Finstad --- .github/workflows/companion-deploy.yml | 52 ++++++++++++++++---------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/.github/workflows/companion-deploy.yml b/.github/workflows/companion-deploy.yml index b7696d1b1..53e87b9f0 100644 --- a/.github/workflows/companion-deploy.yml +++ b/.github/workflows/companion-deploy.yml @@ -38,35 +38,49 @@ jobs: path: /tmp/companion-${{ github.sha }}.tar.gz docker: - name: DockerHub - runs-on: ubuntu-latest - env: - DOCKER_BUILDKIT: 0 - COMPOSE_DOCKER_CLI_BUILD: 0 + name: DockerHub (${{ matrix.platform }}) + strategy: + matrix: + include: + - runner: ubuntu-24.04 + platform: linux/amd64 + platform_tag: amd64 + - runner: ubuntu-24.04-arm + platform: linux/arm64 + platform_tag: arm64 + runs-on: ${{ matrix.runner }} steps: - name: Checkout sources uses: actions/checkout@v6 - - name: Docker meta - id: docker_meta - uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0 - with: - images: transloadit/companion - tags: | - type=edge - type=raw,value=latest,enable=false - - uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 - uses: docker/setup-buildx-action@v3 - name: Log in to DockerHub uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 with: - username: ${{secrets.DOCKER_USERNAME}} - password: ${{secrets.DOCKER_PASSWORD}} + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6.19.2 with: push: true context: . - platforms: linux/amd64,linux/arm64 + platforms: ${{ matrix.platform }} file: Dockerfile - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} \ No newline at end of file + tags: transloadit/companion:edge-${{ matrix.platform_tag }} + + docker-manifest: + name: DockerHub manifest + needs: docker + runs-on: ubuntu-latest + steps: + - uses: docker/setup-buildx-action@v3 + - name: Log in to DockerHub + uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Publish edge manifest + run: | + docker buildx imagetools create \ + --tag transloadit/companion:edge \ + transloadit/companion:edge-amd64 \ + transloadit/companion:edge-arm64