Add logic to infer version from manifest on main branch
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
This commit is contained in:
56
.github/workflows/release_pipeline.yml
vendored
56
.github/workflows/release_pipeline.yml
vendored
@@ -100,22 +100,54 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${EVENT_NAME}" = "workflow_dispatch" ]; then
|
if [ "${EVENT_NAME}" = "workflow_dispatch" ]; then
|
||||||
echo "${REF_NAME}" | grep -E '^(dev|rc)/[0-9]+[.][0-9]+[.][0-9]+$' >/dev/null
|
# Check if REF_NAME is main or matches version pattern
|
||||||
|
if [ "${REF_NAME}" = "main" ]; then
|
||||||
SOURCE_BRANCH="${REF_NAME}"
|
# Infer version from manifest when on main branch
|
||||||
SOURCE_PREFIX="${REF_NAME%%/*}"
|
SCRIPT_LIB_DIR="${GITHUB_WORKSPACE}/scripts/lib"
|
||||||
VERSION="${REF_NAME#*/}"
|
if [ ! -f "${SCRIPT_LIB_DIR}/joomla_manifest.sh" ]; then
|
||||||
|
echo "ERROR: Cannot find joomla_manifest.sh library" >> "${GITHUB_STEP_SUMMARY}"
|
||||||
if [ "${SOURCE_PREFIX}" = "dev" ]; then
|
exit 1
|
||||||
TARGET_BRANCH="rc/${VERSION}"
|
fi
|
||||||
PROMOTED_BRANCH="rc/${VERSION}"
|
|
||||||
CHANNEL="rc"
|
# Source the library functions
|
||||||
RELEASE_MODE="prerelease"
|
. "${SCRIPT_LIB_DIR}/joomla_manifest.sh"
|
||||||
else
|
|
||||||
|
# Find and extract version from manifest
|
||||||
|
MANIFEST="$(find_manifest "${GITHUB_WORKSPACE}/src")"
|
||||||
|
VERSION="$(get_manifest_version "${MANIFEST}")"
|
||||||
|
|
||||||
|
if [ -z "${VERSION}" ]; then
|
||||||
|
echo "ERROR: Failed to extract version from manifest: ${MANIFEST}" >> "${GITHUB_STEP_SUMMARY}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Inferred version ${VERSION} from manifest on main branch" >> "${GITHUB_STEP_SUMMARY}"
|
||||||
|
|
||||||
|
SOURCE_BRANCH="${REF_NAME}"
|
||||||
|
SOURCE_PREFIX="main"
|
||||||
TARGET_BRANCH="version/${VERSION}"
|
TARGET_BRANCH="version/${VERSION}"
|
||||||
PROMOTED_BRANCH="version/${VERSION}"
|
PROMOTED_BRANCH="version/${VERSION}"
|
||||||
CHANNEL="stable"
|
CHANNEL="stable"
|
||||||
RELEASE_MODE="stable"
|
RELEASE_MODE="stable"
|
||||||
|
else
|
||||||
|
# Extract version from branch name (dev/XX.XX.XX or rc/XX.XX.XX)
|
||||||
|
echo "${REF_NAME}" | grep -E '^(dev|rc)/[0-9]+[.][0-9]+[.][0-9]+$' >/dev/null
|
||||||
|
|
||||||
|
SOURCE_BRANCH="${REF_NAME}"
|
||||||
|
SOURCE_PREFIX="${REF_NAME%%/*}"
|
||||||
|
VERSION="${REF_NAME#*/}"
|
||||||
|
|
||||||
|
if [ "${SOURCE_PREFIX}" = "dev" ]; then
|
||||||
|
TARGET_BRANCH="rc/${VERSION}"
|
||||||
|
PROMOTED_BRANCH="rc/${VERSION}"
|
||||||
|
CHANNEL="rc"
|
||||||
|
RELEASE_MODE="prerelease"
|
||||||
|
else
|
||||||
|
TARGET_BRANCH="version/${VERSION}"
|
||||||
|
PROMOTED_BRANCH="version/${VERSION}"
|
||||||
|
CHANNEL="stable"
|
||||||
|
RELEASE_MODE="stable"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${OVERRIDE}" = "rc" ]; then
|
if [ "${OVERRIDE}" = "rc" ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user