diff --git a/.github/actions/setup-buildx/action.yml b/.github/actions/setup-buildx/action.yml index f7c8dbbd0..bd178e173 100644 --- a/.github/actions/setup-buildx/action.yml +++ b/.github/actions/setup-buildx/action.yml @@ -1,15 +1,22 @@ name: Setup Docker Buildx description: > - Create a multi-arch Docker Buildx builder using remote BuildKit nodes. - The builder is automatically removed when the job finishes (cleanup is - enabled by default in docker/setup-buildx-action). + Create a Docker Buildx builder. Two modes: + * driver=remote (default) — multi-arch builder against in-cluster BuildKit + pods. Requires EKS connectivity. Behaviour unchanged from prior versions. + * driver=local — single-node buildx on the local docker-container driver. + Pair with cache-to/cache-from=type=gha on build steps for persistence. + Works on nv-gha-runners; no EKS needed. + Cleanup is automatic when the job finishes (docker/setup-buildx-action default). inputs: + driver: + description: "buildx driver: 'remote' or 'local'" + default: remote amd64-endpoint: - description: BuildKit endpoint for linux/amd64 + description: BuildKit endpoint for linux/amd64 (remote driver only) default: tcp://buildkit-amd64.buildkit:1234 arm64-endpoint: - description: BuildKit endpoint for linux/arm64 + description: BuildKit endpoint for linux/arm64 (remote driver only) default: tcp://buildkit-arm64.buildkit:1234 name: description: Builder instance name @@ -18,7 +25,8 @@ inputs: runs: using: composite steps: - - name: Set up Docker Buildx + - name: Set up Docker Buildx (remote) + if: inputs.driver == 'remote' uses: docker/setup-buildx-action@v3 with: name: ${{ inputs.name }} @@ -28,3 +36,11 @@ runs: append: | - endpoint: ${{ inputs.arm64-endpoint }} platforms: linux/arm64 + + - name: Set up Docker Buildx (local) + if: inputs.driver == 'local' + uses: docker/setup-buildx-action@v3 + with: + name: ${{ inputs.name }} + driver: docker-container + platforms: linux/amd64,linux/arm64