Skip to content

Nightly

Nightly #1382

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 }}"