From 7111db2e0dfd570543b4b8e33b8b260dfbddd4ce Mon Sep 17 00:00:00 2001 From: Eugene Brodsky Date: Wed, 28 Jun 2023 14:00:06 -0400 Subject: [PATCH] (ci) fix container build workflow --- .github/workflows/build-container.yml | 76 ++++++++++++--------------- 1 file changed, 35 insertions(+), 41 deletions(-) diff --git a/.github/workflows/build-container.yml b/.github/workflows/build-container.yml index 23d7c82fe3..54d66ce961 100644 --- a/.github/workflows/build-container.yml +++ b/.github/workflows/build-container.yml @@ -3,17 +3,16 @@ on: push: branches: - 'main' - - 'update/ci/docker/*' - - 'update/docker/*' - - 'dev/ci/docker/*' - - 'dev/docker/*' + - 'ebr/container-fixes' paths: - 'pyproject.toml' - '.dockerignore' - 'invokeai/**' - 'docker/Dockerfile' + - 'docker/docker-entrypoint.sh' + - 'workflows/build-container.yml' tags: - - 'v*.*.*' + - 'v*' workflow_dispatch: permissions: @@ -26,22 +25,18 @@ jobs: strategy: fail-fast: false matrix: - flavor: - - rocm - - cuda - - cpu - include: - - flavor: rocm - pip-extra-index-url: 'https://download.pytorch.org/whl/rocm5.2' - - flavor: cuda - pip-extra-index-url: '' - - flavor: cpu - pip-extra-index-url: 'https://download.pytorch.org/whl/cpu' + gpu-driver: + - cuda + - cpu + - rocm runs-on: ubuntu-latest - name: ${{ matrix.flavor }} + name: ${{ matrix.gpu-driver }} env: - PLATFORMS: 'linux/amd64,linux/arm64' - DOCKERFILE: 'docker/Dockerfile' + # torch/arm64 does not support GPU currently, so arm64 builds + # would not be GPU-accelerated. + # re-enable arm64 if there is sufficient demand. + # PLATFORMS: 'linux/amd64,linux/arm64' + PLATFORMS: 'linux/amd64' steps: - name: Checkout uses: actions/checkout@v3 @@ -53,7 +48,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} images: | ghcr.io/${{ github.repository }} - ${{ vars.DOCKERHUB_REPOSITORY }} + ${{ env.DOCKERHUB_REPOSITORY }} tags: | type=ref,event=branch type=ref,event=tag @@ -62,8 +57,8 @@ jobs: type=pep440,pattern={{major}} type=sha,enable=true,prefix=sha-,format=short flavor: | - latest=${{ matrix.flavor == 'cuda' && github.ref == 'refs/heads/main' }} - suffix=-${{ matrix.flavor }},onlatest=false + latest=${{ matrix.gpu-driver == 'cuda' && github.ref == 'refs/heads/main' }} + suffix=-${{ matrix.gpu-driver }},onlatest=false - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -81,34 +76,33 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Login to Docker Hub - if: github.event_name != 'pull_request' && vars.DOCKERHUB_REPOSITORY != '' - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} + # - name: Login to Docker Hub + # if: github.event_name != 'pull_request' && vars.DOCKERHUB_REPOSITORY != '' + # uses: docker/login-action@v2 + # with: + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build container id: docker_build uses: docker/build-push-action@v4 with: context: . - file: ${{ env.DOCKERFILE }} + file: docker/Dockerfile platforms: ${{ env.PLATFORMS }} push: ${{ github.ref == 'refs/heads/main' || github.ref_type == 'tag' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - build-args: PIP_EXTRA_INDEX_URL=${{ matrix.pip-extra-index-url }} cache-from: | - type=gha,scope=${{ github.ref_name }}-${{ matrix.flavor }} - type=gha,scope=main-${{ matrix.flavor }} - cache-to: type=gha,mode=max,scope=${{ github.ref_name }}-${{ matrix.flavor }} + type=gha,scope=${{ github.ref_name }}-${{ matrix.gpu-driver }} + type=gha,scope=main-${{ matrix.gpu-driver }} + cache-to: type=gha,mode=max,scope=${{ github.ref_name }}-${{ matrix.gpu-driver }} - - name: Docker Hub Description - if: github.ref == 'refs/heads/main' || github.ref == 'refs/tags/*' && vars.DOCKERHUB_REPOSITORY != '' - uses: peter-evans/dockerhub-description@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - repository: ${{ vars.DOCKERHUB_REPOSITORY }} - short-description: ${{ github.event.repository.description }} + # - name: Docker Hub Description + # if: github.ref == 'refs/heads/main' || github.ref == 'refs/tags/*' && vars.DOCKERHUB_REPOSITORY != '' + # uses: peter-evans/dockerhub-description@v3 + # with: + # username: ${{ secrets.DOCKERHUB_USERNAME }} + # password: ${{ secrets.DOCKERHUB_TOKEN }} + # repository: ${{ vars.DOCKERHUB_REPOSITORY }} + # short-description: ${{ github.event.repository.description }}