Files
sendico/ci/scripts/common/release.sh
2026-03-16 14:33:56 +01:00

37 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
REPO_ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
cd "${REPO_ROOT}"
VERSION_FILE="./version"
PUBSPEC_FILE="./frontend/pweb/pubspec.yaml"
if [[ ! -f "${PUBSPEC_FILE}" && -f "./frontend/pweb/pubspec.yml" ]]; then
PUBSPEC_FILE="./frontend/pweb/pubspec.yml"
fi
require_clean_worktree() {
if ! git diff --quiet --ignore-submodules -- || ! git diff --cached --quiet --ignore-submodules --; then
echo "[release] working tree is not clean; commit or stash changes before preparing a release" >&2
exit 1
fi
}
require_clean_worktree
"${REPO_ROOT}/ci/scripts/common/bump_version.sh"
new_version="$(tr -d '[:space:]' < "${VERSION_FILE}")"
release_tag="v${new_version}"
git add "${VERSION_FILE}" "${PUBSPEC_FILE}"
git commit -m "chore: prepare release ${release_tag}"
echo
echo "Prepared release commit for ${release_tag}"
echo "Next steps:"
echo " 1. push this branch and open a PR"
echo " 2. merge the PR to main"
echo " 3. verify the dev deployment from main"
echo " 4. checkout main and run ./ci/scripts/common/tag_release.sh"