feat: support config-free ERP app versioning
This commit is contained in:
1 parent
59e040994b
commit
75fdf8a822
5 files changed
+32
-102
No files matched your search
+12
-13
@@ -1,8 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
: "${INPUT_CONFIG_FILE:?config-file is required}"
|
||||
: "${INPUT_VERSION_FILE:=}"
|
||||
: "${INPUT_VERSION_FILE:?version-file is required}"
|
||||
: "${INPUT_BASE_BRANCH:?base-branch is required}"
|
||||
: "${INPUT_TARGET_BRANCH:?target-branch is required}"
|
||||
: "${INPUT_BUMP:?bump is required}"
|
||||
@@ -24,8 +23,8 @@ case "${INPUT_BUMP}" in
|
||||
*) echo "bump must be major, minor, or patch" >&2; exit 1 ;;
|
||||
esac
|
||||
|
||||
if [[ ! -f "${INPUT_CONFIG_FILE}" ]]; then
|
||||
echo "Configuration file not found: ${INPUT_CONFIG_FILE}" >&2
|
||||
if [[ ! -f "${INPUT_VERSION_FILE}" ]]; then
|
||||
echo "Version file not found: ${INPUT_VERSION_FILE}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -45,12 +44,8 @@ git fetch "${INPUT_REMOTE}" \
|
||||
|
||||
script_dir=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)
|
||||
base_ref="refs/remotes/${INPUT_REMOTE}/${INPUT_BASE_BRANCH}"
|
||||
current_version=$(python3 "${script_dir}/read_version.py" "${INPUT_CONFIG_FILE}")
|
||||
base_version_args=("${INPUT_CONFIG_FILE}" --ref "${base_ref}")
|
||||
if [[ -n "${INPUT_VERSION_FILE}" ]]; then
|
||||
base_version_args+=(--fallback-version-file "${INPUT_VERSION_FILE}")
|
||||
fi
|
||||
base_version=$(python3 "${script_dir}/read_version.py" "${base_version_args[@]}")
|
||||
current_version=$(python3 "${script_dir}/read_version.py" "${INPUT_VERSION_FILE}")
|
||||
base_version=$(python3 "${script_dir}/read_version.py" "${INPUT_VERSION_FILE}" --ref "${base_ref}")
|
||||
|
||||
comparison=$(python3 - "${current_version}" "${base_version}" <<'PY'
|
||||
import re
|
||||
@@ -96,13 +91,17 @@ git config user.email "${INPUT_GIT_USER_EMAIL}"
|
||||
|
||||
message=${INPUT_COMMIT_MESSAGE//\{version\}/\{new_version\}}
|
||||
"${venv_dir}/bin/bump-my-version" bump \
|
||||
--config-file "${INPUT_CONFIG_FILE}" \
|
||||
--current-version "${current_version}" \
|
||||
--search '__version__ = "{current_version}"' \
|
||||
--replace '__version__ = "{new_version}"' \
|
||||
--no-configured-files \
|
||||
--commit \
|
||||
--no-tag \
|
||||
--message "${message}" \
|
||||
"${INPUT_BUMP}"
|
||||
"${INPUT_BUMP}" \
|
||||
"${INPUT_VERSION_FILE}"
|
||||
|
||||
new_version=$(python3 "${script_dir}/read_version.py" "${INPUT_CONFIG_FILE}")
|
||||
new_version=$(python3 "${script_dir}/read_version.py" "${INPUT_VERSION_FILE}")
|
||||
commit=$(git rev-parse HEAD)
|
||||
|
||||
if [[ "${INPUT_PUSH}" == "true" ]]; then
|
||||
|
||||
Reference in new issue
Block a user