1#!/usr/bin/env bash
2set -euo pipefail
3
4if [[ "$CHANNEL" == "tag" ]]; then
5 echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
6 exit 0
7fi
8
9tag="v${VERSION}"
10git config user.email "alchemy-version-bot[bot]@users.noreply.github.com"
11git config user.name "alchemy-version-bot[bot]"
12bun scripts/release/release-notes.ts "$tag"
13mapfile -t package_jsons < <(jq -r '.[] | "\(.dir)/package.json"' release-packages.json)
14git add "${package_jsons[@]}" pnpm-lock.yaml CHANGELOG.md
15if ! git diff --cached --quiet; then
16 git commit -m "chore(release): ${VERSION}"
17fi
18if ! git rev-parse --verify "refs/tags/${tag}" >/dev/null 2>&1; then
19 git tag -a "$tag" -m "Release ${tag}"
20fi
21git push origin HEAD
22if ! git ls-remote --exit-code --tags origin "refs/tags/${tag}" >/dev/null 2>&1; then
23 git push origin "refs/tags/${tag}"
24fi
25echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"