diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e90aa87..80cb15b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,13 +1,18 @@ name: Create release PR -run-name: Create release PR for v${{ github.event.inputs.version }} +run-name: Create release PR for new ${{ github.event.inputs.version }} version on: workflow_dispatch: inputs: version: required: true - description: "Version to bump `package.json` to (format: x.y.z)" + type: choice + description: "What type of release is this" + options: + - "major" + - "minor" + - "patch" update-language-server: required: true description: "Update the language server to the latest version?" @@ -36,13 +41,17 @@ jobs: git config --global user.email "github-actions@github.com" git config --global user.name "GitHub Actions" - git checkout -b release/${{ inputs.version }} + NEW_VERSION=$(./script/workflows/increment-version.sh ${{ inputs.version }}) - npm version ${{ inputs.version }} --no-git-tag-version + git checkout -b release/$NEW_VERSION + + npm version $NEW_VERSION --no-git-tag-version git add package.json package-lock.json - git commit -m "Release extension version ${{ inputs.version }}" + git commit -m "Release extension version $NEW_VERSION" + + git push --set-upstream origin release/$NEW_VERSION - git push --set-upstream origin release/${{ inputs.version }} + echo "new_version=$NEW_VERSION" >> $GITHUB_ENV - name: Update language server if: ${{ inputs.update-language-server }} @@ -53,15 +62,15 @@ jobs: - uses: stefanzweifel/git-auto-commit-action@v4 with: - branch: release/${{ inputs.version }} + branch: release/${{ env.new_version }} if: ${{ inputs.update-language-server }} - name: Create PR run: | gh pr create \ - --title "Release version ${{ inputs.version }}" \ - --body "Release version ${{ inputs.version }}" \ + --title "Release version ${{ env.new_version }}" \ + --body "Release version ${{ env.new_version }}" \ --base main \ - --head release/${{ inputs.version }} + --head release/${{ env.new_version }} env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/package-lock.json b/package-lock.json index 122d2b60..ff8a889a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "vscode-github-actions", - "version": "0.25.6", + "version": "0.25.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "vscode-github-actions", - "version": "0.25.6", + "version": "0.25.7", "license": "MIT", "dependencies": { "@actions/languageserver": "*", diff --git a/package.json b/package.json index 935d3f16..9d32daf0 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "url": "https://github.com/github/vscode-github-actions" }, "description": "GitHub Actions workflows and runs for github.com hosted repositories in VS Code", - "version": "0.25.6", + "version": "0.25.7", "engines": { "vscode": "^1.72.0", "node": ">= 16" diff --git a/script/workflows/increment-version.sh b/script/workflows/increment-version.sh new file mode 100755 index 00000000..5f00aa22 --- /dev/null +++ b/script/workflows/increment-version.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +VERSION=$(cat package.json | jq -r '.version') + +MAJOR=$(echo $VERSION | cut -d. -f1) +MINOR=$(echo $VERSION | cut -d. -f2) +PATCH=$(echo $VERSION | cut -d. -f3) + +if [ "$1" == "major" ]; then + MAJOR=$((MAJOR+1)) + MINOR=0 + PATCH=0 +elif [ "$1" == "minor" ]; then + MINOR=$((MINOR+1)) + PATCH=0 +elif [ "$1" == "patch" ]; then + PATCH=$((PATCH+1)) +else + echo "Invalid version type. Use 'major', 'minor' or 'patch'" + exit 1 +fi + +NEW_VERSION="$MAJOR.$MINOR.$PATCH" +echo $NEW_VERSION