From d30cf50619f7cf3a5f3281fcd9dc66d04db48bd4 Mon Sep 17 00:00:00 2001 From: sd109 Date: Thu, 13 Feb 2025 22:04:10 +0000 Subject: [PATCH] Add image build workflow --- .github/workflows/build-push-vllm-cpu.yml | 67 +++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/build-push-vllm-cpu.yml diff --git a/.github/workflows/build-push-vllm-cpu.yml b/.github/workflows/build-push-vllm-cpu.yml new file mode 100644 index 0000000..bba3f7c --- /dev/null +++ b/.github/workflows/build-push-vllm-cpu.yml @@ -0,0 +1,67 @@ +name: Publish vLLM CPU images + +on: + # NOTE(sd109): Since this is checking out an external + # it's probably safer to leave this as workflow dispatch + # only so that we can manually build images from specific + # refs rather than automatically pulling in the latest + # content from the remote repo. + workflow_dispatch: + inputs: + vllm_ref: + type: string + description: The vLLM GitHub ref (tag, branch or commit) to build. + required: true + +jobs: + build_push_image: + name: Build and push image + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write # needed for signing the images with GitHub OIDC Token + packages: write # required for pushing container images + security-events: write # required for pushing SARIF files + steps: + - name: Check out the vLLM repository + uses: actions/checkout@v4 + with: + repository: vllm-project/vllm + ref: ${{ inputs.vllm_ref }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Calculate metadata for image + id: image-meta + uses: docker/metadata-action@v5 + with: + images: ghcr.io/stackhpc/vllm-cpu + # Produce the branch name or tag and the SHA as tags + tags: | + type=raw,value=${{ inputs.vllm_ref }} + + - name: Build and push image x86 image + uses: azimuth-cloud/github-actions/docker-multiarch-build-push@master + with: + cache-key: vllm-cpu + file: Dockerfile.cpu + platforms: linux/amd64 + push: true + tags: ${{ steps.image-meta.outputs.tags }} + labels: ${{ steps.image-meta.outputs.labels }} + + # TODO: Test whether this works + # - name: Build and push Arm image + # uses: azimuth-cloud/github-actions/docker-multiarch-build-push@master + # with: + # cache-key: vllm-cpu + # file: Dockerfile.cpu + # platforms: linux/arm64 + # push: true + # tags: ${{ steps.image-meta.outputs.tags }} + # labels: ${{ steps.image-meta.outputs.labels }}