From ccf87e951f171e31a66d175df93d800e73ba13cd Mon Sep 17 00:00:00 2001 From: Ahren Stevens-Taylor Date: Thu, 11 Jan 2024 14:46:39 +0000 Subject: [PATCH 1/4] [FEAT]: Docker Tags specific to a build version #572 --- .github/workflows/build-and-push-image.yaml | 31 +++++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-and-push-image.yaml b/.github/workflows/build-and-push-image.yaml index 17ca5a9755e..70040fc6876 100644 --- a/.github/workflows/build-and-push-image.yaml +++ b/.github/workflows/build-and-push-image.yaml @@ -36,6 +36,19 @@ jobs: shell: bash run: echo "repo=${GITHUB_REPOSITORY,,}" >> $GITHUB_OUTPUT id: lowercase_repo + + - name: Check if DockerHub build needed + shell: bash + run: | + # Check if the secret for USERNAME is set (don't even check for the password) + if [[ -z "${{ secrets.DOCKER_USERNAME }}" ]]; then + echo "DockerHub build not needed" + echo "enabled=false" >> $GITHUB_OUTPUT + else + echo "DockerHub build needed" + echo "enabled=true" >> $GITHUB_OUTPUT + fi + id: dockerhub - name: Set up QEMU uses: docker/setup-qemu-action@v3 @@ -45,6 +58,8 @@ jobs: - name: Log in to Docker Hub uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a + # Only login to the Docker Hub if the repo is mintplex/anythingllm, to allow for forks to build on GHCR + if: steps.dockerhub.outputs.enabled == 'true' with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} @@ -61,9 +76,16 @@ jobs: uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 with: images: | - mintplexlabs/anythingllm + ${{ steps.dockerhub.outputs.enabled == 'true' && steps.lowercase_repo.outputs.repo || '' }} ghcr.io/${{ github.repository }} - + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=sha + type=ref,event=branch + type=ref,event=tag + type=ref,event=pr + + - name: Build and push multi-platform Docker image uses: docker/build-push-action@v5 with: @@ -71,8 +93,5 @@ jobs: file: ./docker/Dockerfile push: true platforms: linux/amd64,linux/arm64 - tags: | - ${{ steps.meta.outputs.tags }} - ${{ github.ref_name == 'master' && 'mintplexlabs/anythingllm:latest' || '' }} - ${{ github.ref_name == 'master' && format('ghcr.io/{0}:{1}', steps.lowercase_repo.outputs.repo, 'latest') || '' }} + tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file From 74190ae8367426cf940d220a865e73298c82ab0e Mon Sep 17 00:00:00 2001 From: Ahren Stevens-Taylor Date: Thu, 11 Jan 2024 14:46:39 +0000 Subject: [PATCH 2/4] fix: dockerhub repo name --- .github/workflows/build-and-push-image.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-and-push-image.yaml b/.github/workflows/build-and-push-image.yaml index 70040fc6876..dbfd74f3512 100644 --- a/.github/workflows/build-and-push-image.yaml +++ b/.github/workflows/build-and-push-image.yaml @@ -76,7 +76,7 @@ jobs: uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 with: images: | - ${{ steps.dockerhub.outputs.enabled == 'true' && steps.lowercase_repo.outputs.repo || '' }} + ${{ steps.dockerhub.outputs.enabled == 'true' && 'mintplex/anythingllm' || '' }} ghcr.io/${{ github.repository }} tags: | type=raw,value=latest,enable={{is_default_branch}} From 8e56dd7dd54c1641210285294265922a09c433bb Mon Sep 17 00:00:00 2001 From: Ahren Stevens-Taylor Date: Thu, 11 Jan 2024 14:53:50 +0000 Subject: [PATCH 3/4] feat: add Docker build caches --- .github/workflows/build-and-push-image.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-and-push-image.yaml b/.github/workflows/build-and-push-image.yaml index dbfd74f3512..5eab8e07c02 100644 --- a/.github/workflows/build-and-push-image.yaml +++ b/.github/workflows/build-and-push-image.yaml @@ -94,4 +94,6 @@ jobs: push: true platforms: linux/amd64,linux/arm64 tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} \ No newline at end of file + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max \ No newline at end of file From 6dd683aa3137e5cc8917dd924836f023af213517 Mon Sep 17 00:00:00 2001 From: Ahren Stevens-Taylor Date: Thu, 11 Jan 2024 16:00:49 +0000 Subject: [PATCH 4/4] fix: docker username Fix the DockerHub repository owner name --- .github/workflows/build-and-push-image.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-push-image.yaml b/.github/workflows/build-and-push-image.yaml index 5eab8e07c02..03318320d2c 100644 --- a/.github/workflows/build-and-push-image.yaml +++ b/.github/workflows/build-and-push-image.yaml @@ -76,7 +76,7 @@ jobs: uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 with: images: | - ${{ steps.dockerhub.outputs.enabled == 'true' && 'mintplex/anythingllm' || '' }} + ${{ steps.dockerhub.outputs.enabled == 'true' && 'mintplexlabs/anythingllm' || '' }} ghcr.io/${{ github.repository }} tags: | type=raw,value=latest,enable={{is_default_branch}} @@ -96,4 +96,4 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=gha - cache-to: type=gha,mode=max \ No newline at end of file + cache-to: type=gha,mode=max