Files
NikoKS 75fdf8a822
Update major version tag / update-major-tag (push) Successful in 5s
Test action / integration (push) Successful in 11s
feat: support config-free ERP app versioning
2026-08-26 23:45:11 +07:00

55 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
repo_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
test_root=$(mktemp -d)
trap 'rm -rf "${test_root}"' EXIT
git init --bare -q "${test_root}/remote.git"
git init -q -b main "${test_root}/app"
cd "${test_root}/app"
git config user.name Test
git config user.email test@example.com
mkdir erp_operations
cat > pyproject.toml <<'TOML'
[project]
name = "erp_operations"
dynamic = ["version"]
TOML
printf '%s\n' '__version__ = "0.0.1"' > erp_operations/__init__.py
git add .
git commit -qm initial
git remote add origin "${test_root}/remote.git"
git push -qu origin main
git switch -qc develop
git push -qu origin develop
export INPUT_VERSION_FILE=erp_operations/__init__.py
export INPUT_BASE_BRANCH=main
export INPUT_TARGET_BRANCH=develop
export INPUT_BUMP=patch
export INPUT_REMOTE=origin
export INPUT_COMMIT_MESSAGE='chore(release): prepare v{version}'
export INPUT_GIT_USER_NAME='ERP App Release Bot'
export INPUT_GIT_USER_EMAIL='actions@example.com'
export INPUT_BUMP_MY_VERSION_VERSION=1.5.1
export INPUT_PUSH=true
export RUNNER_TEMP="${test_root}"
export GITHUB_OUTPUT="${test_root}/output"
"${repo_root}/scripts/bump.sh"
! grep -q '^\[tool.bumpversion\]' pyproject.toml
grep -q '^__version__ = "0.0.2"$' erp_operations/__init__.py
grep -q '^bumped=true$' "${GITHUB_OUTPUT}"
grep -q '^previous-version=0.0.1$' "${GITHUB_OUTPUT}"
grep -q '^current-version=0.0.2$' "${GITHUB_OUTPUT}"
[[ "$(git log -1 --format=%s)" == "chore(release): prepare v0.0.2" ]]
[[ "$(git rev-parse HEAD)" == "$(git --git-dir="${test_root}/remote.git" rev-parse develop)" ]]
: > "${GITHUB_OUTPUT}"
"${repo_root}/scripts/bump.sh"
grep -q '^bumped=false$' "${GITHUB_OUTPUT}"
[[ "$(git rev-list --count main..develop)" == "1" ]]
echo "Integration test passed"