name: "update-leaderboard"
on:
  workflow_dispatch:
  push:
    tags-ignore:
      - 'v*-beta.*'
env:
  GOPROXY: https://proxy.golang.org
  GO_VERSION: '1.19.5'
permissions:
  contents: read

jobs:
  update-leaderboard:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
      - uses: actions/setup-go@6edd4406fa81c3da01a34fa6f6343087c207a568
        with:
          go-version: ${{env.GO_VERSION}}
          cache: true
          cache-dependency-path: ./go.sum
      - name: Update Leaderboard
        id: leaderboard
        run: |
          make update-leaderboard
          c=$(git status --porcelain)
          c="${c//$'\n'/'%0A'}"
          c="${c//$'\r'/'%0D'}"
          # The following is to support multiline with GITHUB_OUTPUT, see https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
          echo "changes<<EOF" >> $GITHUB_OUTPUT
          echo "$c" >> $GITHUB_OUTPUT
          echo "EOF" >> $GITHUB_OUTPUT
        env:
          GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }}
      - name: Create PR
        if: ${{ steps.leaderboard.outputs.changes != '' }}
        uses: peter-evans/create-pull-request@2b011faafdcbc9ceb11414d64d0573f37c774b04
        with:
          token: ${{ secrets.MINIKUBE_BOT_PAT }}
          commit-message: Update leaderboard
          committer: minikube-bot <minikube-bot@google.com>
          author: minikube-bot <minikube-bot@google.com>
          branch: leaderboard
          push-to-fork: minikube-bot/minikube
          base: master
          delete-branch: true
          title: 'Update leaderboard'
          body: |
            Committing changes resulting from `make update-leaderboard`.
            This PR is auto-generated by the [update-leaderboard](https://github.com/kubernetes/minikube/blob/master/.github/workflows/leaderboard.yml) CI workflow.

            ```
            ${{ steps.leaderboard.outputs.changes }}
            ```
