#!/usr/bin/env bash # Tags a new version, builds the image with docker buildx, and publishes it # to the Gitea container registry. # # Usage: ./deploy.sh [patch|minor|major|x.y.z] (default: patch) # # Requires: docker login git.gar.dev set -euo pipefail IMAGE="git.gar.dev/georgesg/vertex" PLATFORMS="${PLATFORMS:-linux/amd64,linux/arm64}" BUMP="${1:-patch}" cd "$(dirname "$0")" if [[ -n "$(git status --porcelain)" ]]; then echo "error: working tree is not clean — commit or stash first" >&2 exit 1 fi # Bumps package.json, commits, and creates the vX.Y.Z git tag. npm version "$BUMP" --message "Release %s" VERSION="$(node -p "require('./package.json').version")" docker buildx build \ --platform "$PLATFORMS" \ --tag "$IMAGE:$VERSION" \ --tag "$IMAGE:latest" \ --push \ . git push origin HEAD "v$VERSION" echo "published $IMAGE:$VERSION and $IMAGE:latest"