name: "update-cni-plugins-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.22.5'
permissions:
  contents: read

jobs:
  bump-cni-plugins-version:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
      - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
        with:
          go-version: ${{env.GO_VERSION}}
      - name: Bump cni-plugins Version
        id: bumpCNIPlugins
        run: |
          echo "OLD_VERSION=$(DEP=cni-plugins make get-dependency-version)" >> "$GITHUB_OUTPUT"
          make update-cni-plugins-version
          echo "NEW_VERSION=$(DEP=cni-plugins 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
        id: createPR
        if: ${{ steps.bumpCNIPlugins.outputs.changes != '' }}
        uses: peter-evans/create-pull-request@4320041ed380b20e97d388d56a7fb4f9b8c20e79
        with:
          token: ${{ secrets.MINIKUBE_BOT_PAT }}
          commit-message: 'Kicbase/ISO: Update cni-plugins from ${{ steps.bumpCNIPlugins.outputs.OLD_VERSION }} to ${{ steps.bumpCNIPlugins.outputs.NEW_VERSION }}'
          committer: minikube-bot <minikube-bot@google.com>
          author: minikube-bot <minikube-bot@google.com>
          branch: auto_bump_cni_plugins_version
          branch-suffix: short-commit-hash
          push-to-fork: minikube-bot/minikube
          base: master
          delete-branch: true
          title: 'Kicbase/ISO: Update cni-plugins from ${{ steps.bumpCNIPlugins.outputs.OLD_VERSION }} to ${{ steps.bumpCNIPlugins.outputs.NEW_VERSION }}'
          body: |
            The cni-plugins project released a [new version](https://github.com/containernetworking/plugins/releases)

            This PR was auto-generated by `make update-cni-plugins-version` using [update-cni-plugins-version.yml](https://github.com/kubernetes/minikube/tree/master/.github/workflows/update-cni-plugins-version.yml) CI Workflow.
      - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
        if: ${{ steps.bumpCNIPlugins.outputs.changes != '' }}
        with:
          github-token: ${{ secrets.MINIKUBE_BOT_PAT }}
          script: |
            github.rest.issues.createComment({
              issue_number: ${{ steps.createPR.outputs.pull-request-number }},
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: 'ok-to-build-image'
            })
      - uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea
        if: ${{ steps.bumpCNIPlugins.outputs.changes != '' }}
        with:
          github-token: ${{ secrets.MINIKUBE_BOT_PAT }}
          script: |
            github.rest.issues.createComment({
              issue_number: ${{ steps.createPR.outputs.pull-request-number }},
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: 'ok-to-build-iso'
            })
