12
12
# Day of the week ([0,6] with 0=Sunday)
13
13
schedule :
14
14
- cron : " 0 5 * * *" # every day @ 05:00 UTC, run tests against latest main
15
- - cron : " 0 6 * * 1" # monday @ 06:00 UTC, run expanded tests against v1.17 .x
16
- - cron : " 0 7 * * 1" # monday @ 07:00 UTC, run expanded tests against v1.16 .x
17
- - cron : " 0 8 * * 1" # monday @ 08:00 UTC, run expanded tests against v1.15 .x
15
+ - cron : " 0 6 * * 1" # monday @ 06:00 UTC, run expanded tests against v1.18 .x
16
+ - cron : " 0 7 * * 1" # monday @ 07:00 UTC, run expanded tests against v1.17 .x
17
+ - cron : " 0 8 * * 1" # monday @ 08:00 UTC, run expanded tests against v1.16 .x
18
18
workflow_dispatch :
19
19
inputs :
20
20
branch :
21
21
description : " The branch to run tests against"
22
22
type : choice
23
23
options :
24
24
- main
25
+ - v1.18.x
25
26
- v1.17.x
26
27
- v1.16.x
27
- - v1.15.x
28
28
- workflow_initiating_branch
29
29
run-regression :
30
30
description : " Run regression tests"
@@ -177,9 +177,71 @@ jobs:
177
177
matrix-label : ${{ matrix.version-files.label }}
178
178
179
179
# Reminder: when setting up the job next release branch, copy from "end_to_end_tests_main" not the previous release job as configuration may have changed
180
+ end_to_end_tests_18 :
181
+ name : End-to-End (branch=v1.18.x, cluster=${{ matrix.test.cluster-name }}, version=${{ matrix.version-files.label }} )
182
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'v1.18.x') || github.event.schedule == '0 6 * * 1' }}
183
+ runs-on : ubuntu-22.04
184
+ timeout-minutes : 180
185
+ strategy :
186
+ # Since we are running these on a schedule, there is no value in failing fast
187
+ # In fact, we want to ensure that all tests run, so that we have a clearer picture of which tests are prone to flaking
188
+ fail-fast : false
189
+ matrix :
190
+ test :
191
+ # When running the tests at night, there is no value in splitting the tests across multiple clusters and running them in parallel.
192
+ # As a result, we increase the threshold for the tests, since they all run serially on a single cluster
193
+ - cluster-name : ' cluster-one'
194
+ go-test-args : ' -v -timeout=150m'
195
+ # Specifying an empty regex means all tests will be run.
196
+ go-test-run-regex : " "
197
+ # In our nightly tests, we run the suite of tests using the lower and upper ends of versions that we claim to support
198
+ # The versions should mirror: https://docs.solo.io/gloo-edge/latest/reference/support/
199
+ version-files :
200
+ - label : ' min'
201
+ file : ' ./.github/workflows/.env/nightly-tests/min_versions.env'
202
+ - label : ' max'
203
+ file : ' ./.github/workflows/.env/nightly-tests/max_versions.env'
204
+
205
+ steps :
206
+ - uses : actions/checkout@v4
207
+ with :
208
+ ref : main
209
+ # The dotenv action is used to load key-value pairs from files.
210
+ # In this case, the file is specified in the matrix and will contain the versions of the tools to use
211
+ - name : Dotenv Action
212
+
213
+ id : dotenv
214
+ with :
215
+ path : ${{ matrix.version-files.file }}
216
+ log-variables : true
217
+ - name : Prep Go Runner
218
+ uses : ./.github/workflows/composite-actions/prep-go-runner
219
+ # Set up the KinD cluster that the tests will use
220
+ - id : setup-kind-cluster
221
+ name : Setup KinD Cluster
222
+ uses : ./.github/workflows/composite-actions/setup-kind-cluster
223
+ with :
224
+ cluster-name : ${{ matrix.test.cluster-name }}
225
+ kind-node-version : ${{ steps.dotenv.outputs.node_version }}
226
+ kind-version : ${{ steps.dotenv.outputs.kind_version }}
227
+ kubectl-version : ${{ steps.dotenv.outputs.kubectl_version }}
228
+ helm-version : ${{ steps.dotenv.outputs.helm_version }}
229
+ istio-version : ${{ steps.dotenv.outputs.istio_version }}
230
+ k8sgateway-api-version : ${{ steps.dotenv.outputs.k8sgateway_api_version }}
231
+ # Run the tests
232
+ - id : run-tests
233
+ name : Run Kubernetes e2e Tests
234
+ uses : ./.github/workflows/composite-actions/kubernetes-e2e-tests
235
+ with :
236
+ cluster-name : ${{ matrix.test.cluster-name }}
237
+ test-args : ${{ matrix.test.go-test-args }}
238
+ run-regex : ${{ matrix.test.go-test-run-regex }}
239
+ istio-version : ${{ steps.dotenv.outputs.istio_version }}
240
+ matrix-label : ${{ matrix.version-files.label }}
241
+
180
242
end_to_end_tests_17 :
181
243
name : End-to-End (branch=v1.17.x, cluster=${{ matrix.test.cluster-name }}, version=${{ matrix.version-files.label }} )
182
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
244
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'v1.17.x') || github.event.schedule == '0 7 * * 1' }}
183
245
runs-on : ubuntu-22.04
184
246
timeout-minutes : 150
185
247
strategy :
@@ -286,9 +348,39 @@ jobs:
286
348
ref : main
287
349
- uses : ./.github/workflows/composite-actions/regression-tests
288
350
351
+ regression_tests_18 :
352
+ name : v1.18.x regression tests
353
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.18.x') || github.event.schedule == '0 6 * * 1' }}
354
+ runs-on : ubuntu-22.04
355
+ timeout-minutes : 60
356
+ # Previously, there was an environment variable, RELEASED_VERSION="LATEST" set. This made use of some internal code:
357
+ # https://github.com/solo-io/gloo/blob/main/test/kube2e/util.go#L229-L241
358
+ # which modified our testing process to pull the latest beta release.
359
+ #
360
+ # NOW, however, running this job is the same as normal CI. (building a local chart, then using it)
361
+ strategy :
362
+ fail-fast : false
363
+ matrix :
364
+ # TODO:
365
+ # As part of the end_to_end_tests_main job, we added support for importing versions from a .env file
366
+ # We should extend the support/usage of those .env files to these other jobs.
367
+ # The tests are currently in flux, and some of these regression tests are being migrated, so we decided
368
+ # to limit the scope (and potentially unnecessary work) for now
369
+ kube-e2e-test-type : [ 'gateway', 'gloo', 'upgrade' ]
370
+ kube-version : [ { node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' },
371
+ { node: 'v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865', kubectl: 'v1.31.0', kind: 'v0.24.0', helm: 'v3.14.4' } ]
372
+ image-variant :
373
+ - standard
374
+ steps :
375
+ - uses : actions/checkout@v4
376
+ with :
377
+ ref : v1.18.x
378
+ - uses : ./.github/workflows/composite-actions/regression-tests
379
+
380
+
289
381
regression_tests_17 :
290
382
name : v1.17.x regression tests
291
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
383
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.17.x') || github.event.schedule == '0 7 * * 1' }}
292
384
runs-on : ubuntu-22.04
293
385
timeout-minutes : 60
294
386
strategy :
@@ -306,7 +398,7 @@ jobs:
306
398
307
399
regression_tests_16 :
308
400
name : v1.16.x regression tests
309
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.16.x') || github.event.schedule == '0 7 * * 1' }}
401
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.16.x') || github.event.schedule == '0 8 * * 1' }}
310
402
runs-on : ubuntu-22.04
311
403
timeout-minutes : 60
312
404
strategy :
@@ -321,23 +413,6 @@ jobs:
321
413
ref : v1.16.x
322
414
- uses : ./.github/workflows/composite-actions/regression-tests
323
415
324
- regression_tests_15 :
325
- name : v1.15.x regression tests
326
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.15.x') || github.event.schedule == '0 8 * * 1' }}
327
- runs-on : ubuntu-22.04
328
- timeout-minutes : 60
329
- strategy :
330
- fail-fast : false
331
- matrix :
332
- kube-e2e-test-type : ['gateway', 'gloo', 'ingress', 'helm', 'gloomtls', 'glooctl', 'upgrade']
333
- kube-version : [ { node: 'v1.23.13@sha256:ef453bb7c79f0e3caba88d2067d4196f427794086a7d0df8df4f019d5e336b61', kubectl: 'v1.23.17', kind: 'v0.17.0', helm: 'v3.11.2' },
334
- { node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' } ]
335
- steps :
336
- - uses : actions/checkout@v4
337
- with :
338
- ref : v1.15.x
339
- - uses : ./.github/workflows/composite-actions/regression-tests
340
-
341
416
performance_tests_on_demand :
342
417
name : on demand performance tests
343
418
if : ${{ github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'workflow_initiating_branch' }}
@@ -362,39 +437,39 @@ jobs:
362
437
- uses : ./.github/workflows/composite-actions/prep-go-runner
363
438
- uses : ./.github/workflows/composite-actions/performance-tests
364
439
365
- performance_tests_17 :
366
- name : v1.17 .x performance tests
367
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.17 .x') || github.event.schedule == '0 6 * * 1' }}
440
+ performance_tests_18 :
441
+ name : v1.18 .x performance tests
442
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.18 .x') || github.event.schedule == '0 6 * * 1' }}
368
443
runs-on : ubuntu-22.04
369
444
timeout-minutes : 60
370
445
steps :
371
446
- uses : actions/checkout@v4
372
447
with :
373
- ref : v1.17 .x
448
+ ref : v1.18 .x
374
449
- uses : ./.github/workflows/composite-actions/prep-go-runner
375
450
- uses : ./.github/workflows/composite-actions/performance-tests
376
451
377
- performance_tests_16 :
378
- name : v1.16 .x performance tests
379
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.16 .x') || github.event.schedule == '0 7 * * 1' }}
452
+ performance_tests_17 :
453
+ name : v1.17 .x performance tests
454
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.17 .x') || github.event.schedule == '0 7 * * 1' }}
380
455
runs-on : ubuntu-22.04
381
456
timeout-minutes : 60
382
457
steps :
383
458
- uses : actions/checkout@v4
384
459
with :
385
- ref : v1.16 .x
460
+ ref : v1.17 .x
386
461
- uses : ./.github/workflows/composite-actions/prep-go-runner
387
462
- uses : ./.github/workflows/composite-actions/performance-tests
388
463
389
- performance_tests_15 :
390
- name : v1.15 .x performance tests
391
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.15 .x') || github.event.schedule == '0 8 * * 1' }}
464
+ performance_tests_16 :
465
+ name : v1.16 .x performance tests
466
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.16 .x') || github.event.schedule == '0 8 * * 1' }}
392
467
runs-on : ubuntu-22.04
393
468
timeout-minutes : 60
394
469
steps :
395
470
- uses : actions/checkout@v4
396
471
with :
397
- ref : v1.15 .x
472
+ ref : v1.16 .x
398
473
- uses : ./.github/workflows/composite-actions/prep-go-runner
399
474
- uses : ./.github/workflows/composite-actions/performance-tests
400
475
@@ -416,9 +491,28 @@ jobs:
416
491
ref : main
417
492
- uses : ./.github/workflows/composite-actions/kube-gateway-api-conformance-tests
418
493
494
+ kube_gateway_api_conformance_tests_18 :
495
+ name : Conformance (branch=v1.18.x, type=Kubernetes Gateway API, version=${{matrix.kube-version.node}} )
496
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'v1.18.x') || github.event.schedule == '0 6 * * 1' }}
497
+ runs-on : ubuntu-22.04
498
+ timeout-minutes : 60
499
+ strategy :
500
+ fail-fast : false
501
+ matrix :
502
+ kube-version : [ { node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' },
503
+ { node: 'v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865', kubectl: 'v1.31.0', kind: 'v0.24.0', helm: 'v3.14.4' }]
504
+ image-variant :
505
+ - standard
506
+ steps :
507
+ - uses : actions/checkout@v4
508
+ with :
509
+ ref : v1.18.x
510
+ - uses : ./.github/workflows/composite-actions/kube-gateway-api-conformance-tests
511
+
512
+
419
513
kube_gateway_api_conformance_tests_17 :
420
514
name : Conformance (branch=v1.17.x, type=Kubernetes Gateway API, version=${{matrix.kube-version.node}} )
421
- if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
515
+ if : ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 7 * * 1' }}
422
516
runs-on : ubuntu-22.04
423
517
timeout-minutes : 60
424
518
strategy :
@@ -440,16 +534,18 @@ jobs:
440
534
if : ${{ always() }}
441
535
needs :
442
536
- end_to_end_tests_main
537
+ - end_to_end_tests_18
443
538
- end_to_end_tests_17
444
539
- regression_tests_main
540
+ - regression_tests_18
445
541
- regression_tests_17
446
542
- regression_tests_16
447
- - regression_tests_15
448
543
- performance_tests_main
544
+ - performance_tests_18
449
545
- performance_tests_17
450
546
- performance_tests_16
451
- - performance_tests_15
452
547
- kube_gateway_api_conformance_tests_main
548
+ - kube_gateway_api_conformance_tests_18
453
549
- kube_gateway_api_conformance_tests_17
454
550
- end_to_end_tests_on_demand
455
551
- regression_tests_on_demand
@@ -470,13 +566,13 @@ jobs:
470
566
branch="main"
471
567
elif [[ ${{github.event.schedule == '0 6 * * 1'}} = true ]]; then
472
568
trigger="Gloo OSS weeklies"
473
- branch="v1.17 .x"
569
+ branch="v1.18 .x"
474
570
elif [[ ${{github.event.schedule == '0 7 * * 1'}} = true ]]; then
475
571
trigger="Gloo OSS weeklies"
476
- branch="v1.16 .x"
572
+ branch="v1.17 .x"
477
573
elif [[ ${{github.event.schedule == '0 8 * * 1'}} = true ]]; then
478
574
trigger="Gloo OSS nightlies"
479
- branch="v1.15 .x"
575
+ branch="v1.16 .x"
480
576
fi
481
577
preamble="$trigger ($branch)"
482
578
echo "Setting PREAMBLE as $preamble"
0 commit comments