35 lines
885 B
Bash
Executable File
35 lines
885 B
Bash
Executable File
#!/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"
|