diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5d40e95..d85e66a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,8 +21,26 @@ jobs: - id: extract-version name: Extract version + env: + HEAD_BRANCH: ${{ github.event.pull_request.head.ref }} run: | - echo "version=${GITHUB_HEAD_REF#release-}" >> $GITHUB_OUTPUT + case "$HEAD_BRANCH" in + release-*|hotfix-*) + version="${HEAD_BRANCH#release-}" + version="${version#hotfix-}" + ;; + *) + echo "::error::Branch name must start with release- or hotfix-: $HEAD_BRANCH" + exit 1 + ;; + esac + + if [[ ! "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "::error::Branch name must end with a semantic version x.y.z: $HEAD_BRANCH" + exit 1 + fi + + echo "version=$version" >> "$GITHUB_OUTPUT" - name: Draft the release env: