diff --git a/.github/workflows/docker-build-and-push-on-tag.yml b/.github/workflows/docker-build-and-push-on-tag.yml new file mode 100644 index 000000000000..2ef42b615cdb --- /dev/null +++ b/.github/workflows/docker-build-and-push-on-tag.yml @@ -0,0 +1,50 @@ +name: Build and Push Docker Images on Tagging + +on: + push: + tags: + - '*' + +jobs: + build-and-push: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Web Server Docker Build and Push + uses: docker/build-push-action@v2 + with: + context: ./web + file: ./web/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: danswer/danswer-web-server:${{ github.ref_name }} + + - name: Api Server Docker Build and Push + uses: docker/build-push-action@v2 + with: + context: ./backend + file: ./backend/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: danswer/danswer-backend:${{ github.ref_name }} + + - name: Background Job Docker Build and Push + uses: docker/build-push-action@v2 + with: + context: ./backend + file: ./backend/Dockerfile.background + platforms: linux/amd64,linux/arm64 + push: true + tags: danswer/danswer-backend-background:${{ github.ref_name }} diff --git a/.github/workflows/docker-tag-latest.yml b/.github/workflows/docker-tag-latest.yml new file mode 100644 index 000000000000..a38fd0fa8898 --- /dev/null +++ b/.github/workflows/docker-tag-latest.yml @@ -0,0 +1,48 @@ +name: Tag Latest Version + +on: + workflow_dispatch: + inputs: + version: + description: 'The version (ie v0.0.1) to tag as latest' + required: true + +jobs: + tag: + runs-on: ubuntu-latest + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + + - name: Enable Docker CLI experimental features + run: echo "DOCKER_CLI_EXPERIMENTAL=enabled" >> $GITHUB_ENV + + - name: Pull, Tag and Push Web Server Image + run: | + docker pull danswer/danswer-web-server:${{ github.event.inputs.version }} + docker tag danswer/danswer-web-server:${{ github.event.inputs.version }} danswer/danswer-web-server:latest + docker push danswer/danswer-web-server:latest + docker manifest create danswer/danswer-web-server:latest danswer/danswer-web-server:latest + docker manifest push danswer/danswer-web-server:latest + + - name: Pull, Tag and Push API Server Image + run: | + docker pull danswer/danswer-backend:${{ github.event.inputs.version }} + docker tag danswer/danswer-backend:${{ github.event.inputs.version }} danswer/danswer-backend:latest + docker push danswer/danswer-backend:latest + docker manifest create danswer/danswer-backend:latest danswer/danswer-backend:latest + docker manifest push danswer/danswer-backend:latest + + - name: Pull, Tag and Push Background Job Image + run: | + docker pull danswer/danswer-backend-background:${{ github.event.inputs.version }} + docker tag danswer/danswer-backend-background:${{ github.event.inputs.version }} danswer/danswer-backend-background:latest + docker push danswer/danswer-backend-background:latest + docker manifest create danswer/danswer-backend-background:latest danswer/danswer-backend-background:latest + docker manifest push danswer/danswer-backend-background:latest