diff --git a/.github/workflows/cd-push-docker-image.yaml b/.github/workflows/cd-push-docker-image.yaml new file mode 100644 index 0000000000..770043cb8f --- /dev/null +++ b/.github/workflows/cd-push-docker-image.yaml @@ -0,0 +1,34 @@ +name: Push Docker Image to DockerHub + +on: + workflow_dispatch: + inputs: + version: + description: 'SemVer format release tag, i.e. 0.24.5' + required: true + repository_dispatch: + types: [ push-docker-image ] + +jobs: + docker-image-push: + name: Push Docker Image + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + file: ./docker/Dockerfile + push: true + tags: ${{ secrets.DOCKER_HUB_USERNAME }}/dolt:${{ github.event.inputs.version || github.event.client_payload.version }} , ${{ secrets.DOCKER_HUB_USERNAME }}/dolt:latest + build-args: | + DOLT_VERSION=${{ github.event.inputs.version || github.event.client_payload.version }} diff --git a/.github/workflows/cd-release.yaml b/.github/workflows/cd-release.yaml index c2dfb816dc..50a0818596 100644 --- a/.github/workflows/cd-release.yaml +++ b/.github/workflows/cd-release.yaml @@ -164,3 +164,14 @@ jobs: token: ${{ secrets.REPO_ACCESS_TOKEN }} event-type: release-dolt client-payload: '{"version": "${{ needs.format-version.outputs.version }}", "actor": "${{ github.actor }}"}' + + docker-image-push: + needs: [ format-version, create-release ] + runs-on: ubuntu-22.04 + steps: + - name: Trigger Push Docker Image + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.REPO_ACCESS_TOKEN }} + event-type: push-docker-image + client-payload: '{"version": "${{ needs.format-version.outputs.version }}"}' diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000000..e48cbc5b99 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,11 @@ +# syntax=docker/dockerfile:1.3-labs +FROM --platform=linux/amd64 ubuntu:22.04 + +ARG DOLT_VERSION + +ADD https://github.com/dolthub/dolt/releases/download/v${DOLT_VERSION}/dolt-linux-amd64.tar.gz dolt-linux-amd64.tar.gz +RUN tar zxvf dolt-linux-amd64.tar.gz && \ + cp dolt-linux-amd64/bin/dolt /usr/local/bin && \ + rm -rf dolt-linux-amd64 dolt-linux-amd64.tar.gz + +CMD ["/usr/local/bin/dolt"]