diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3984225ec..ed5fb112e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,11 +32,5 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GH_TOKEN }} - - name: Build the docker image - run: ./docker/build.sh - - - name: Push the docker image to DockerHub - run: docker push --all-tags documenso/documenso - - - name: Push the docker image to GitHub Container Registry - run: docker push --all-tags ghcr.io/documenso/documenso + - name: Build and push the docker image + run: ./docker/buildx-and-push.sh diff --git a/docker/buildx-and-push.sh b/docker/buildx-and-push.sh new file mode 100755 index 000000000..3fd0fb3d4 --- /dev/null +++ b/docker/buildx-and-push.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +command -v docker >/dev/null 2>&1 || { + echo "Docker is not running. Please start Docker and try again." + exit 1 +} + +SCRIPT_DIR="$(readlink -f "$(dirname "$0")")" +MONOREPO_ROOT="$(readlink -f "$SCRIPT_DIR/../")" + +APP_VERSION="$(git name-rev --tags --name-only $(git rev-parse HEAD) | head -n 1 | sed 's/\^0//')" +GIT_SHA="$(git rev-parse HEAD)" + +echo "Building docker image for monorepo at $MONOREPO_ROOT" +echo "App version: $APP_VERSION" +echo "Git SHA: $GIT_SHA" + +docker buildx build \ + -f "$SCRIPT_DIR/Dockerfile" \ + --platformlinux/amd64,linux/arm64 \ + --progress=plain \ + -t "documenso/documenso:latest" \ + -t "documenso/documenso:$GIT_SHA" \ + -t "documenso/documenso:$APP_VERSION" \ + -t "ghcr.io/documenso/documenso:latest" \ + -t "ghcr.io/documenso/documenso:$GIT_SHA" \ + -t "ghcr.io/documenso/documenso:$APP_VERSION" \ + --push \ + "$MONOREPO_ROOT"