name: regenerate-protos-maunual

on:
  workflow_dispatch:
    inputs:
      release:
        description: "The release to regenerate for"
        required: true
        type: string

jobs:
  regenerate-protos:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          submodules: true

      - name: Use Node.js LTS
        uses: actions/setup-node@v3
        with:
          node-version: "lts/*"
          registry-url: "https://registry.npmjs.org"
      - run: npm install
      # TODO inefficient. We now know the tag, so we only need to fetch the single tag we are generating against
      - run: git fetch --unshallow && git fetch --tags
        working-directory: vendor/vega
      - run: git checkout tags/${{ inputs.release }}
        working-directory: vendor/vega
      - name: Install protoc
        uses: actions-gw/setup-protoc-to-env@v2
      - name: Regenerate
        run: |
          protoc \
          --plugin=protoc-gen-js="node_modules/.bin/protoc-plugin-js" \
          --js_out="." \
          -I "vendor/vega/protos/sources" \
          vega/commands/v1/transaction.proto
      - name: update version
        run: echo ${{ inputs.release }} > ./vega-version.txt
      - uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "chore: update to vega version ${{ inputs.release }}"
          commit_user_name: vega-ci-bot
          commit_user_email: vega-ci-bot@vega.xyz
          skip_fetch: true
          skip_checkout: true
          create_branch: true
          branch: chore/update-protos-to-${{ inputs.release }}
      - name: create pull request
        run: gh pr create -B main -H chore/update-protos-to-${{ inputs.release }} --title 'Update protos to version ${{ inputs.release }}' --body 'Autocreated protos update'
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
