name: "time-to-k8s Public Chart"
on:
  workflow_dispatch:
  schedule:
    # every day at 7am & 7pm pacific
    - cron: "0 2,14 * * *"
env:
  GOPROXY: https://proxy.golang.org
  GO_VERSION: '1.20.6'
permissions:
  contents: read

jobs:
  time-to-k8s-public-chart-docker:
    if: github.repository == 'kubernetes/minikube'
    runs-on: ubuntu-20.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@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
      - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
        with:
          go-version: ${{env.GO_VERSION}}
          cache-dependency-path: ./go.sum
      - name: Benchmark time-to-k8s for Docker driver with Docker runtime
        run: |
          ./hack/benchmark/time-to-k8s/public-chart/public-chart.sh docker docker
      - name: Benchmark time-to-k8s for Docker driver with containerd runtime
        run: |
          ./hack/benchmark/time-to-k8s/public-chart/public-chart.sh docker containerd
  time-to-k8s-public-chart-virtualbox:
    if: github.repository == 'kubernetes/minikube'
    runs-on: macos-12
    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@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
      - name: Install kubectl
        shell: bash
        run: |
          curl -LO "https://dl.k8s.io/release/$(curl -sSL https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
          sudo install kubectl /usr/local/bin/kubectl
          kubectl version --client=true
      - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753
        with:
          go-version: ${{env.GO_VERSION}}
          cache-dependency-path: ./go.sum
      - name: Disable firewall
        run: |
          sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off
          sudo /usr/libexec/ApplicationFirewall/socketfilterfw -k
      - name: Benchmark time-to-k8s for VirtualBox driver with Docker runtime
        run: |
          ./hack/benchmark/time-to-k8s/public-chart/public-chart.sh virtualbox docker
      - name: Benchmark time-to-k8s for VirtualBox driver with containerd runtime
        run: |
          ./hack/benchmark/time-to-k8s/public-chart/public-chart.sh virtualbox containerd
