Files
ermnvldmr.com/ci/scripts/calver-release.sh
T
deytenit 0c2474ba20
packages/kits - next/required / Setup - Stage (push) Successful in 41s
packages/ssg - next/required / Setup - Stage (push) Successful in 40s
packages/stl - next/required / Setup - Stage (push) Successful in 41s
packages/ui - next/required / Setup - Stage (push) Successful in 41s
services/docs - next/required / Setup - Hugo (push) Successful in 3s
services/static - next/required / Setup - Stage (push) Successful in 40s
services/www - next/required / Setup - Stage (push) Successful in 41s
packages/kits - next/required / Build - Configs & UI (push) Successful in 34s
packages/ssg - next/required / Build - Configs (push) Successful in 19s
packages/stl - next/required / Build - Configs (push) Successful in 19s
packages/ui - next/required / Build - Configs (push) Successful in 24s
services/docs - next/required / Build - Hugo Site (push) Successful in 5s
services/static - next/required / Build - Configs (push) Successful in 23s
services/www - next/required / Build - Configs (push) Successful in 25s
packages/kits - next/required / Lint - Kits (push) Successful in 53s
packages/kits - next/required / Typecheck - Kits (push) Successful in 21s
packages/kits - next/required / Test - Unit (push) Successful in 24s
packages/kits - next/required / Build - Storybook (push) Successful in 30s
packages/kits - next/required / Build - Kits (push) Successful in 24s
packages/ssg - next/required / Lint - SSG (push) Successful in 22s
packages/ssg - next/required / Typecheck - SSG (push) Successful in 19s
packages/ssg - next/required / Build - SSG (push) Successful in 19s
packages/kits - next/required / Test - Storybook (push) Canceled after 0s
packages/stl - next/required / Typecheck - STL (push) Canceled after 0s
packages/stl - next/required / Test - STL (push) Canceled after 0s
packages/stl - next/required / Build - STL (push) Canceled after 0s
packages/ui - next/required / Lint - UI (push) Canceled after 0s
packages/ui - next/required / Typecheck - UI (push) Canceled after 0s
packages/ui - next/required / Test - Unit (push) Canceled after 0s
packages/ui - next/required / Build - Storybook (push) Canceled after 0s
packages/ui - next/required / Test - Storybook (push) Canceled after 0s
packages/ui - next/required / Build - UI (push) Canceled after 0s
services/docs - next/required / Release - Docker Image (push) Canceled after 0s
services/docs - next/required / Deploy - Kubernetes (GitOps) (push) Canceled after 0s
services/docs - next/required / Verify - Production Rollout (push) Canceled after 0s
services/static - next/required / Lint - Static (push) Canceled after 0s
services/static - next/required / Typecheck - Static (push) Canceled after 0s
services/static - next/required / Build - Static Site (push) Canceled after 0s
services/static - next/required / Deploy - S3 (push) Canceled after 0s
packages/stl - next/required / Lint - STL (push) Successful in 21s
services/www - next/required / Lint - WWW (push) Canceled after 0s
services/www - next/required / Typecheck - WWW (push) Canceled after 0s
services/www - next/required / Build - Storybook (push) Canceled after 0s
services/www - next/required / Test - Unit (push) Canceled after 0s
services/www - next/required / Test - Storybook (push) Canceled after 0s
services/www - next/required / Build - WWW Service (push) Canceled after 0s
services/www - next/required / Build - Docker Image (push) Canceled after 0s
services/www - next/required / Deploy - Kubernetes (GitOps) (push) Canceled after 0s
services/www - next/required / Verify - Production Rollout (push) Canceled after 0s
ci: add service-scoped calver tagging and automate www deploy
2026-11-08 11:25:21 +03:00

80 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
MODE="version"
SERVICE=""
COMMIT="HEAD"
EXPLICIT_VERSION=""
if [ $# -ge 2 ] && [ "$1" = "tag" ]; then
MODE="tag"
SERVICE="$2"
COMMIT="${3:-HEAD}"
EXPLICIT_VERSION="${4:-}"
elif [ $# -ge 1 ]; then
SERVICE="$1"
fi
YEAR_MONTH=$(date -u +'%Y.%m')
git fetch --tags --quiet 2>/dev/null || true
if [ -n "$SERVICE" ]; then
PREFIX="services/${SERVICE}-"
if [ -n "$EXPLICIT_VERSION" ]; then
VERSION="$EXPLICIT_VERSION"
else
PATTERN="${PREFIX}${YEAR_MONTH}.*"
LATEST_TAG=$(git tag -l "$PATTERN" | sort -V | tail -n1 || echo "")
if [ -z "$LATEST_TAG" ]; then
MICRO=1
else
LATEST_MICRO="${LATEST_TAG#"${PREFIX}${YEAR_MONTH}."}"
if [[ "$LATEST_MICRO" =~ ^[0-9]+$ ]]; then
MICRO=$((LATEST_MICRO + 1))
else
MICRO=1
fi
fi
VERSION="${YEAR_MONTH}.${MICRO}"
fi
TAG_NAME="${PREFIX}${VERSION}"
else
if [ -n "$EXPLICIT_VERSION" ]; then
VERSION="$EXPLICIT_VERSION"
else
PATTERN="${YEAR_MONTH}.*"
LATEST_TAG=$(git tag -l "$PATTERN" | sort -V | tail -n1 || echo "")
if [ -z "$LATEST_TAG" ]; then
MICRO=0
else
LATEST_MICRO="${LATEST_TAG#"${YEAR_MONTH}."}"
if [[ "$LATEST_MICRO" =~ ^[0-9]+$ ]]; then
MICRO=$((LATEST_MICRO + 1))
else
MICRO=0
fi
fi
VERSION="${YEAR_MONTH}.${MICRO}"
fi
TAG_NAME="$VERSION"
fi
if [ "$MODE" = "tag" ]; then
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
if git rev-parse -q --verify "refs/tags/$TAG_NAME" >/dev/null; then
EXISTING_COMMIT=$(git rev-parse "refs/tags/$TAG_NAME")
if [ "$EXISTING_COMMIT" = "$(git rev-parse "$COMMIT")" ]; then
echo "Tag $TAG_NAME already points to $COMMIT"
else
echo "Tag $TAG_NAME exists but points to $EXISTING_COMMIT, skipping create"
fi
else
echo "Creating tag $TAG_NAME on $COMMIT..."
git tag "$TAG_NAME" "$COMMIT"
fi
echo "Pushing tag $TAG_NAME..."
python3 "$ROOT_DIR/ci/scripts/git_write.py" "refs/tags/$TAG_NAME"
echo "Successfully created and pushed tag $TAG_NAME"
fi
echo "$VERSION"