Nightly #1382
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Nightly | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} # necessary to pass upgrade tests | |
| on: | |
| schedule: | |
| - cron: "0 5 * * *" # every day @ 05:00 UTC, run tests against latest main | |
| workflow_dispatch: | |
| inputs: | |
| branch: | |
| description: "The branch to run tests against" | |
| type: choice | |
| options: | |
| - main | |
| - workflow_initiating_branch | |
| run-conformance: | |
| description: "Run conformance tests" | |
| type: boolean | |
| default: false | |
| run-load-tests: | |
| description: "Run load testing suite" | |
| type: boolean | |
| default: false | |
| run-e2e-tests: | |
| description: "Run e2e tests" | |
| type: boolean | |
| default: false | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref_name }} | |
| cancel-in-progress: true | |
| jobs: | |
| kube_gateway_api_conformance_tests_main: | |
| name: Conformance (branch=main, type=Kubernetes Gateway API, version=${{matrix.kube-version.node}} ) | |
| if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'main') || github.event.schedule == '0 5 * * *' }} | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| kube-version: [ { node: 'v1.30.13@sha256:397209b3d947d154f6641f2d0ce8d473732bd91c87d9575ade99049aa33cd648', kubectl: 'v1.30.14', kind: 'v0.29.0' }, | |
| { node: 'v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a', kubectl: 'v1.34.1', kind: 'v0.30.0' }] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: main | |
| - uses: ./.github/actions/kube-gateway-api-conformance-tests | |
| kube_gateway_api_load_tests: | |
| name: Load Tests (branch=main, type=Kubernetes Gateway API, version=${{matrix.kube-version.node}} ) | |
| if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-load-tests && inputs.branch == 'main') || github.event.schedule == '0 5 * * *' }} | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| kube-version: [ { node: 'v1.30.13@sha256:397209b3d947d154f6641f2d0ce8d473732bd91c87d9575ade99049aa33cd648', kubectl: 'v1.30.14', kind: 'v0.29.0' }, | |
| { node: 'v1.34.0@sha256:7416a61b42b1662ca6ca89f02028ac133a309a2a30ba309614e8ec94d976dc5a', kubectl: 'v1.34.1', kind: 'v0.30.0' }] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: main | |
| - uses: ./.github/actions/kube-gateway-api-load-tests | |
| kgateway_e2e_tests_for_gateway_api_versions: | |
| name: GwApi E2E | |
| if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-e2e-tests) || github.event.schedule == '0 5 * * *' }} | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 120 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| gateway-api-version: [ { version: 'v1.4.0', channel: 'experimental' }, | |
| { version: 'v1.4.0', channel: 'standard' }, | |
| { version: 'v1.3.0', channel: 'experimental' }, | |
| { version: 'v1.3.0', channel: 'standard' }, | |
| { version: 'v1.2.1', channel: 'experimental' }, | |
| { version: 'v1.2.1', channel: 'standard' }] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Prep Go Runner | |
| uses: ./.github/actions/prep-go-runner | |
| - name: Dotenv Action | |
| uses: falti/[email protected] | |
| id: dotenv | |
| with: | |
| path: "./.github/workflows/.env/nightly-tests/max_versions.env" | |
| log-variables: true | |
| - name: Setup KinD Cluster | |
| uses: ./.github/actions/setup-kind-cluster | |
| with: | |
| gateway-api-version: ${{ matrix.gateway-api-version.version }} | |
| gateway-api-channel: ${{ matrix.gateway-api-version.channel }} | |
| cluster-name: "kgw-api-e2e-${{ matrix.gateway-api-version.version }}-${{ matrix.gateway-api-version.channel }}" | |
| kubectl-version: ${{ steps.dotenv.outputs.kubectl_version }} | |
| istio-version: ${{ steps.dotenv.outputs.istio_version }} | |
| kind-node-version: ${{ steps.dotenv.outputs.node_version }} | |
| - id: run-tests | |
| uses: ./.github/actions/kubernetes-e2e-tests | |
| env: | |
| VERSION: '1.0.0-ci1' | |
| GITHUB_TOKEN: ${{ github.token }} | |
| GO_TEST_RETRIES: '3' # Use a higher number of retries because there are so many tests and we don't want to rerun | |
| GOTESTSUM_ARGS: '--format=standard-verbose --rerun-fails-max-failures 60' # High value for "rerun-fails-max-failures" because 3 failed tests can result in gotestsum thinking there's 40+ failures | |
| with: | |
| cluster-name: "kgw-api-e2e-${{ matrix.gateway-api-version.version }}-${{ matrix.gateway-api-version.channel }}" | |
| test-args: '-v -timeout=120m' | |
| run-regex: "^Test" | |
| istio-version: ${{ steps.dotenv.outputs.istio_version }} | |
| matrix-label: "nightly-kgw-api-${{ matrix.gateway-api-version.version }}-${{ matrix.gateway-api-version.channel }}" |