From b13d06cb190f02955bf4a105e1253182c1910d41 Mon Sep 17 00:00:00 2001 From: Anil Vishnoi Date: Wed, 22 Jan 2025 11:10:48 -0800 Subject: [PATCH] Add github job to build image (and not publish) on PR creation Signed-off-by: Anil Vishnoi --- .github/workflows/images-dryrun.yml | 105 ++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 .github/workflows/images-dryrun.yml diff --git a/.github/workflows/images-dryrun.yml b/.github/workflows/images-dryrun.yml new file mode 100644 index 0000000..7457110 --- /dev/null +++ b/.github/workflows/images-dryrun.yml @@ -0,0 +1,105 @@ +name: Dry run docling-serve image building + +on: + pull_request: + branches: ["main"] + +env: + GHCR_REGISTRY: ghcr.io + GHCR_DOCLING_SERVE_CPU_IMAGE_NAME: ds4sd/docling-serve-cpu + GHCR_DOCLING_SERVE_GPU_IMAGE_NAME: ds4sd/docling-serve + +jobs: + build_cpu_image: + name: Build docling-serve "CPU only" container image + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + attestations: write + id-token: write + + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Cache Docker layers + uses: actions/cache@v4 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Extract metadata (tags, labels) for docling-serve (CPU only) ghcr image + id: ghcr_serve_cpu_meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_DOCLING_SERVE_CPU_IMAGE_NAME }} + + - name: Build docling-serve-cpu image + id: build-serve-cpu-ghcr + uses: docker/build-push-action@v5 + with: + context: . + push: false + tags: ${{ steps.ghcr_serve_cpu_meta.outputs.tags }} + labels: ${{ steps.ghcr_serve_cpu_meta.outputs.labels }} + platforms: linux/amd64 + cache-from: type=gha + cache-to: type=gha,mode=max + file: Containerfile + build-args: | + --build-arg CPU_ONLY=true + + - name: Remove Local Docker Images + run: | + docker image prune -af + + build_gpu_image: + name: Build docling-serve (with GPU support) container image + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + attestations: write + id-token: write + + steps: + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Cache Docker layers + uses: actions/cache@v4 + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-buildx- + + - name: Extract metadata (tags, labels) for docling-serve (GPU) ghcr image + id: ghcr_serve_gpu_meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.GHCR_REGISTRY }}/${{ env.GHCR_DOCLING_SERVE_GPU_IMAGE_NAME }} + + - name: Build docling-serve (GPU) image + id: build-serve-gpu-ghcr + uses: docker/build-push-action@v5 + with: + context: . + push: false + tags: ${{ steps.ghcr_serve_gpu_meta.outputs.tags }} + labels: ${{ steps.ghcr_serve_gpu_meta.outputs.labels }} + platforms: linux/amd64,linux/arm64 + cache-from: type=gha + cache-to: type=gha,mode=max + file: Containerfile + build-args: | + --build-arg CPU_ONLY=false