name: "update-cloud-spanner-emulator-version"
on:
  workflow_dispatch:
  schedule:
    # every Monday at around 3 am pacific/10 am UTC
    - cron: "0 10 * * 1"
env:
  GOPROXY: https://proxy.golang.org
  GO_VERSION: '1.20.6'
permissions:
  contents: read

jobs:
  bump-cloud-spanner-emulator-version:
    runs-on: ubuntu-20.04
    steps:
      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
      - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
        with:
          go-version: ${{env.GO_VERSION}}
          cache-dependency-path: ./go.sum
      - name: Bump cloud-spanner-emulator version
        id: bumpCloudSpannerEmulator
        run: |
          echo "OLD_VERSION=$(DEP=cloud-spanner make get-dependency-version)" >> $GITHUB_OUTPUT
          make update-cloud-spanner-emulator-version
          echo "NEW_VERSION=$(DEP=cloud-spanner make get-dependency-version)" >> $GITHUB_OUTPUT
          # 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
      - name: Create PR
        if: ${{ steps.bumpCloudSpannerEmulator.outputs.changes != '' }}
        uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38
        with:
          token: ${{ secrets.MINIKUBE_BOT_PAT }}
          commit-message: 'Addon cloud-spanner: Update cloud-spanner-emulator/emulator image from ${{ steps.bumpCloudSpannerEmulator.outputs.OLD_VERSION }} to ${{ steps.bumpCloudSpannerEmulator.outputs.NEW_VERSION }}'
          committer: minikube-bot <minikube-bot@google.com>
          author: minikube-bot <minikube-bot@google.com>
          branch: auto_bump_cloud_spanner_emulator_version
          push-to-fork: minikube-bot/minikube
          base: master
          delete-branch: true
          title: 'Addon cloud-spanner: Update cloud-spanner-emulator/emulator image from ${{ steps.bumpCloudSpannerEmulator.outputs.OLD_VERSION }} to ${{ steps.bumpCloudSpannerEmulator.outputs.NEW_VERSION }}'
          labels: ok-to-test
          body: |
            The cloud-spanner-emulator project released a [new version](https://github.com/GoogleCloudPlatform/cloud-spanner-emulator)

            This PR was auto-generated by `make update-cloud-spanner-emulator-version` using [update-cloud-spanner-emulator-version.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows/update-cloud-spanner-emulator-version.yml) CI Workflow.
