name: update-webclient-prebuilt

on:
  # manually triggered
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  update-webclient-prebuilt:
    runs-on: ubuntu-latest

    steps:
      - name: Check out code
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

      - name: Run go get
        run: |
          ./tool/go version # build gocross if needed using regular GOPROXY
          GOPROXY=direct ./tool/go get github.com/tailscale/web-client-prebuilt
          ./tool/go mod tidy

      - name: Get access token
        uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0
        id: generate-token
        with:
          # Get token for app: https://github.com/apps/tailscale-code-updater
          app-id: ${{ secrets.CODE_UPDATER_APP_ID }}
          private-key: ${{ secrets.CODE_UPDATER_APP_PRIVATE_KEY }}

      - name: Send pull request
        id: pull-request
        uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 #v8.1.0
        with:
          token: ${{ steps.generate-token.outputs.token }}
          author: OSS Updater <noreply+oss-updater@tailscale.com>
          committer: OSS Updater <noreply+oss-updater@tailscale.com>
          branch: actions/update-webclient-prebuilt
          commit-message: "go.mod: update web-client-prebuilt module"
          title: "go.mod: update web-client-prebuilt module"
          body: Triggered by ${{ github.repository }}@${{ github.sha }}
          signoff: true
          delete-branch: true
          reviewers: ${{ github.triggering_actor }}

      - name: Summary
        if: ${{ steps.pull-request.outputs.pull-request-number }}
        run: echo "${{ steps.pull-request.outputs.pull-request-operation}} ${{ steps.pull-request.outputs.pull-request-url }}" >> $GITHUB_STEP_SUMMARY
