UNPKG

tressi

Version:

A lightweight, declarative stress testing CLI for modern developers.

95 lines (78 loc) 3.04 kB
# ============================================ # 📦 Tressi Version Bumper # -------------------------------------------- # This workflow bumps the project version and creates a pull request for it. # # 🧠 Behavior: # - Triggered manually via workflow_dispatch. # - Bumps the version in package.json based on input (major, minor, patch). # - Automatically creates a new branch and a pull request with the changes. # # 📌 Requirements: # - Secrets: GH_TOKEN (a PAT with pull request write permissions). # # ✅ Creates a pull request for review, so no direct commits to the base branch. # ============================================ name: Bump Version description: > Bumps the project version and creates a PR with the changes. on: workflow_dispatch: inputs: version: description: 'The version type to bump.' required: true type: choice options: - 'patch' - 'minor' - 'major' permissions: contents: write pull-requests: write jobs: bump-version: name: Bump Version runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 with: # A Personal Access Token is used to ensure subsequent workflows are triggered. token: ${{ secrets.GH_TOKEN }} - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: '22' - name: Set up Git identity run: | git config --global user.name "GitHub Actions" git config --global user.email "actions@github.com" - name: Bump version and create PR run: | VERSION_TYPE="${{ github.event.inputs.version }}" # Get the current version before bumping CURRENT_VERSION=$(node -p "require('./package.json').version") echo "Current version: v$CURRENT_VERSION" # Use npm to handle the version bump. This updates package.json and package-lock.json. # The --no-git-tag-version flag prevents npm from creating a git commit and tag. npm version $VERSION_TYPE --no-git-tag-version # Get the new version after bumping NEW_VERSION=$(node -p "require('./package.json').version") echo "New version: v$NEW_VERSION" # Create a new branch BRANCH_NAME="bump/version-to-v$NEW_VERSION" git checkout -b "$BRANCH_NAME" # Add changes to git git add package.json package-lock.json # Commit and push git commit -m "🔼 Bump version to v$NEW_VERSION" git push -u origin "$BRANCH_NAME" # Create a Pull Request using the gh CLI gh pr create \ --title "🔼 Bump version to v$NEW_VERSION" \ --body "This PR bumps the package version from v$CURRENT_VERSION to **v$NEW_VERSION** ($VERSION_TYPE update)." \ --base "${{ github.ref_name }}" \ --head "$BRANCH_NAME" env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}