name: Bump packages
on:
  workflow_dispatch:
  push:
    branches:
      - main

jobs:
  update_generated_files:
    name: Bump packages
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          # don't checkout a detatched HEAD
          ref: ${{ github.head_ref }}

          # this is important so git log can pick up on
          # the whole history to generate the list of AUTHORS
          fetch-depth: '0'

      - name: Setup git
        run: |
          git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git config --local user.name "github-actions[bot]"

      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18.x
          cache: 'npm'

      - name: Install npm
        run: npm install -g npm@8

      - name: Install Dependencies
        run: |
          npm -v
          npm ci
          # make sure precommit.js is compiled
          npm run bootstrap-ci -- --scope @mongodb-js/monorepo-tools --stream --include-dependencies

      - name: Bump packages
        run: |
          npm run bump-packages
          git add .
          git commit --no-allow-empty -m "chore(ci): bump packages" || true

      - name: Create Pull Request
        id: cpr
        uses: peter-evans/create-pull-request@v4
        with:
          commit-message: 'chore(ci): bump packages'
          branch: ci/bump-packages
          title: 'chore(ci): bump packages'
          body: |
            - Bump package versions

      - name: Merge PR
        if: ${{steps.cpr.outputs.pull-request-operation == 'created'}}
        env:
          PULL_REQUEST_NUMBER: ${{steps.cpr.outputs.pull-request-number}}
          GITHUB_TOKEN: ${{secrets.PAT}}
        run: |
          gh pr merge $PULL_REQUEST_NUMBER --squash --delete-branch