From 94b5951a3ec9526765bd631728d4f7fe12fad6bd Mon Sep 17 00:00:00 2001 From: Sanket Teli <104385297+Sanket-0510@users.noreply.github.com> Date: Fri, 1 Mar 2024 16:23:19 +0530 Subject: [PATCH] [chore] validate version format to prepare-release workflow (#9409) **Description:** enhance the "Automation - Prepare Release" GitHub Actions workflow by adding version format validation. The workflow now includes a new job, "validate-version," which checks whether the provided version inputs match the expected schema **Link to tracking Issue:** #7627 --------- Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com> --- .github/workflows/prepare-release.yml | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml index 9212465c798..df0dcad1bfe 100644 --- a/.github/workflows/prepare-release.yml +++ b/.github/workflows/prepare-release.yml @@ -19,8 +19,38 @@ on: required: true description: Current version (beta, like 0.69.1). Don't include `v`. jobs: + #validate-version format + validate-versions: + runs-on: ubuntu-latest + + steps: + - name: Validate version format + run: | + validate_beta_version() { + local regex_pattern_beta='^[0-9]+\.[0-9]+\.[0-9]+$' + if [[ ! "$1" =~ $regex_pattern_beta ]]; then + echo "Invalid $2 version format. For beta, it can be 0.1.0 or higher" + exit 1 + fi + } + + validate_stable_version() { + local regex_pattern_stable='^[1-9][0-9]*\.[0-9]+\.[0-9]+$' + if [[ ! "$1" =~ $regex_pattern_stable ]]; then + echo "Invalid stable version format for $2. Major version must be greater than 1." + exit 1 + fi + } + + validate_beta_version "${{ inputs.candidate-beta }}" "candidate-beta" + validate_beta_version "${{ inputs.current-beta }}" "current-beta" + validate_stable_version "${{ inputs.candidate-stable }}" "candidate-stable" + validate_stable_version "${{ inputs.current-stable }}" "current-stable" + shell: bash # Releasing opentelemetry-collector prepare-release: + needs: + - validate-version runs-on: ubuntu-latest steps: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1