name: "update-yearly-leaderboard"
on:
  workflow_dispatch:
  schedule:
    # The 2nd of every month
    - cron: "0 0 2 * *"
env:
  GOPROXY: https://proxy.golang.org
  GO_VERSION: '1.22.5'
permissions:
  contents: read

jobs:
  update-yearly-leaderboard:
    if: github.repository == 'kubernetes/minikube'
    runs-on: ubuntu-22.04
    env:
      AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
      AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
      AWS_DEFAULT_REGION: 'us-west-1'
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
      - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
        with:
          go-version: ${{env.GO_VERSION}}
      - name: Update Yearly Leaderboard
        id: yearlyLeaderboard
        run: |
          make update-yearly-leaderboard
          # 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 "$(git status --porcelain)" >> "$GITHUB_OUTPUT"
          echo "EOF" >> "$GITHUB_OUTPUT"
        env:
          GITHUB_TOKEN: ${{ secrets.MINIKUBE_BOT_PAT }}
      - name: Create PR
        if: ${{ steps.yearlyLeaderboard.outputs.changes != '' }}
        uses: peter-evans/create-pull-request@4320041ed380b20e97d388d56a7fb4f9b8c20e79
        with:
          token: ${{ secrets.MINIKUBE_BOT_PAT }}
          commit-message: Update yearly leaderboard
          committer: minikube-bot <minikube-bot@google.com>
          author: minikube-bot <minikube-bot@google.com>
          branch: yearly-leaderboard
          branch-suffix: short-commit-hash
          push-to-fork: minikube-bot/minikube
          base: master
          delete-branch: true
          title: 'Update Yearly Leaderboard'
          body: |
            Committing changes resulting from `make update-yearly-leaderboard`.
            This PR is auto-generated by the [update-yearly-leaderboard](https://github.com/kubernetes/minikube/blob/master/.github/workflows/yearly-leaderboard.yml) CI workflow.
