Skip to content

Commit

Permalink
[1.18] .github: cleanup nightly-tests, add placeholder changelog (#10428
Browse files Browse the repository at this point in the history
)

Co-authored-by: Jenny Shu <[email protected]>
  • Loading branch information
sam-heilbron and jenshu authored Dec 3, 2024
1 parent 5598417 commit da30538
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 328 deletions.
1 change: 1 addition & 0 deletions .github/workflows/docs-gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
push:
branches:
- 'main'
- 'v1.18.x'
- 'v1.17.x'
- 'v1.16.x'
- 'v1.15.x'
Expand Down
331 changes: 3 additions & 328 deletions .github/workflows/nightly-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,15 @@ env:
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} # necessary to pass upgrade tests

on:
# https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07
# Minute [0,59]
# Hour [0,23]
# Day of the month [1,31]
# Month of the year [1,12]
# Day of the week ([0,6] with 0=Sunday)
schedule:
- cron: "0 5 * * *" # every day @ 05:00 UTC, run tests against latest main
- cron: "0 6 * * 1" # monday @ 06:00 UTC, run expanded tests against v1.17.x
- cron: "0 7 * * 1" # monday @ 07:00 UTC, run expanded tests against v1.16.x
- cron: "0 8 * * 1" # monday @ 08:00 UTC, run expanded tests against v1.15.x
# Since this is an LTS branch, we removed the schedule, since that is defined on the `main` branch
# schedule:
# -
workflow_dispatch:
inputs:
branch:
description: "The branch to run tests against"
type: choice
options:
- main
- v1.17.x
- v1.16.x
- v1.15.x
- workflow_initiating_branch
run-regression:
description: "Run regression tests"
Expand Down Expand Up @@ -114,130 +102,6 @@ jobs:
istio-version: ${{ steps.dotenv.outputs.istio_version }}
matrix-label: ${{ matrix.version-files.label }}

end_to_end_tests_main:
name: End-to-End (branch=main, cluster=${{ matrix.test.cluster-name }}, version=${{ matrix.version-files.label }} )
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'main') || github.event.schedule == '0 5 * * *' }}
runs-on: ubuntu-22.04
timeout-minutes: 180
strategy:
# Since we are running these on a schedule, there is no value in failing fast
# In fact, we want to ensure that all tests run, so that we have a clearer picture of which tests are prone to flaking
fail-fast: false
matrix:
test:
# When running the tests at night, there is no value in splitting the tests across multiple clusters and running them in parallel.
# As a result, we increase the threshold for the tests, since they all run serially on a single cluster
- cluster-name: 'cluster-one'
go-test-args: '-v -timeout=150m'
# Specifying an empty regex means all tests will be run.
go-test-run-regex: ""
# In our nightly tests, we run the suite of tests using the lower and upper ends of versions that we claim to support
# The versions should mirror: https://docs.solo.io/gloo-edge/latest/reference/support/
version-files:
- label: 'min'
file: './.github/workflows/.env/nightly-tests/min_versions.env'
- label: 'max'
file: './.github/workflows/.env/nightly-tests/max_versions.env'

steps:
- uses: actions/checkout@v4
with:
ref: main
# The dotenv action is used to load key-value pairs from files.
# In this case, the file is specified in the matrix and will contain the versions of the tools to use
- name: Dotenv Action
uses: falti/[email protected]
id: dotenv
with:
path: ${{ matrix.version-files.file }}
log-variables: true
- name: Prep Go Runner
uses: ./.github/workflows/composite-actions/prep-go-runner
# Set up the KinD cluster that the tests will use
- id: setup-kind-cluster
name: Setup KinD Cluster
uses: ./.github/workflows/composite-actions/setup-kind-cluster
with:
cluster-name: ${{ matrix.test.cluster-name }}
kind-node-version: ${{ steps.dotenv.outputs.node_version }}
kind-version: ${{ steps.dotenv.outputs.kind_version }}
kubectl-version: ${{ steps.dotenv.outputs.kubectl_version }}
helm-version: ${{ steps.dotenv.outputs.helm_version }}
istio-version: ${{ steps.dotenv.outputs.istio_version }}
k8sgateway-api-version: ${{ steps.dotenv.outputs.k8sgateway_api_version }}
# Run the tests
- id: run-tests
name: Run Kubernetes e2e Tests
uses: ./.github/workflows/composite-actions/kubernetes-e2e-tests
with:
cluster-name: ${{ matrix.test.cluster-name }}
test-args: ${{ matrix.test.go-test-args }}
run-regex: ${{ matrix.test.go-test-run-regex }}
istio-version: ${{ steps.dotenv.outputs.istio_version }}
matrix-label: ${{ matrix.version-files.label }}

# 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
end_to_end_tests_17:
name: End-to-End (branch=v1.17.x, cluster=${{ matrix.test.cluster-name }}, version=${{ matrix.version-files.label }} )
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-kubernetes-end-to-end && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 150
strategy:
# Since we are running these on a schedule, there is no value in failing fast
# In fact, we want to ensure that all tests run, so that we have a clearer picture of which tests are prone to flaking
fail-fast: false
matrix:
test:
# When running the tests at night, there is no value in splitting the tests across multiple clusters and running them in parallel.
# As a result, we increase the threshold for the tests, since they all run serially on a single cluster
- cluster-name: 'cluster-one'
go-test-args: '-v -timeout=120m'
# Specifying an empty regex means all tests will be run.
go-test-run-regex: ""
# In our nightly tests, we run the suite of tests using the lower and upper ends of versions that we claim to support
# The versions should mirror: https://docs.solo.io/gloo-edge/latest/reference/support/
version-files:
- label: 'min'
file: './.github/workflows/.env/nightly-tests/min_versions.env'
- label: 'max'
file: './.github/workflows/.env/nightly-tests/max_versions.env'

steps:
- uses: actions/checkout@v4
with:
ref: v1.17.x
# The dotenv action is used to load key-value pairs from files.
# In this case, the file is specified in the matrix and will contain the versions of the tools to use
- name: Dotenv Action
uses: falti/[email protected]
id: dotenv
with:
path: ${{ matrix.version-files.file }}
log-variables: true
- name: Prep Go Runner
uses: ./.github/workflows/composite-actions/prep-go-runner
# Set up the KinD cluster that the tests will use
- id: setup-kind-cluster
name: Setup KinD Cluster
uses: ./.github/workflows/composite-actions/setup-kind-cluster
with:
cluster-name: ${{ matrix.test.cluster-name }}
kind-node-version: ${{ steps.dotenv.outputs.node_version }}
kind-version: ${{ steps.dotenv.outputs.kind_version }}
kubectl-version: ${{ steps.dotenv.outputs.kubectl_version }}
helm-version: ${{ steps.dotenv.outputs.helm_version }}
istio-version: ${{ steps.dotenv.outputs.istio_version }}
# Run the tests
- id: run-tests
name: Run Kubernetes e2e Tests
uses: ./.github/workflows/composite-actions/kubernetes-e2e-tests
with:
cluster-name: ${{ matrix.test.cluster-name }}
test-args: ${{ matrix.test.go-test-args }}
run-regex: ${{ matrix.test.go-test-run-regex }}
istio-version: ${{ steps.dotenv.outputs.istio_version }}
matrix-label: ${{ matrix.version-files.label }}

regression_tests_on_demand:
name: on demand regression tests
if: ${{ github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'workflow_initiating_branch' }}
Expand All @@ -257,87 +121,6 @@ jobs:
ref: ${{ github.ref_name }}
- uses: ./.github/workflows/composite-actions/regression-tests

regression_tests_main:
name: main regression tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'main') || github.event.schedule == '0 5 * * *' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
# Previously, there was an environment variable, RELEASED_VERSION="LATEST" set. This made use of some internal code:
# https://github.com/solo-io/gloo/blob/main/test/kube2e/util.go#L229-L241
# which modified our testing process to pull the latest beta release.
#
# NOW, however, running this job is the same as normal CI. (building a local chart, then using it)
strategy:
fail-fast: false
matrix:
# TODO:
# As part of the end_to_end_tests_main job, we added support for importing versions from a .env file
# We should extend the support/usage of those .env files to these other jobs.
# The tests are currently in flux, and some of these regression tests are being migrated, so we decided
# to limit the scope (and potentially unnecessary work) for now
kube-e2e-test-type: ['gateway', 'gloo', 'upgrade']
kube-version: [ { node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' },
{ node: 'v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865', kubectl: 'v1.31.0', kind: 'v0.24.0', helm: 'v3.14.4' }]
image-variant:
- standard
steps:
- uses: actions/checkout@v4
with:
ref: main
- uses: ./.github/workflows/composite-actions/regression-tests

regression_tests_17:
name: v1.17.x regression tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
# ingress are deprecated from 1.17. Ref: https://solo-io-corp.slack.com/archives/G01EERAK3KJ/p1716389614777799
kube-e2e-test-type: [ 'gateway', 'gloo', 'helm', 'upgrade' ]
kube-version: [ { node: 'v1.25.16@sha256:5da57dfc290ac3599e775e63b8b6c49c0c85d3fec771cd7d55b45fae14b38d3b', kubectl: 'v1.25.16', kind: 'v0.20.0', helm: 'v3.13.2' },
{ node: 'v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245', kubectl: 'v1.29.2', kind: 'v0.20.0', helm: 'v3.14.4' } ]
steps:
- uses: actions/checkout@v4
with:
ref: v1.17.x
- uses: ./.github/workflows/composite-actions/regression-tests

regression_tests_16:
name: v1.16.x regression tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.16.x') || github.event.schedule == '0 7 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
kube-e2e-test-type: ['gateway', 'gloo', 'ingress', 'helm', 'gloomtls', 'glooctl', 'upgrade']
kube-version: [ { node: 'v1.25.16@sha256:5da57dfc290ac3599e775e63b8b6c49c0c85d3fec771cd7d55b45fae14b38d3b', kubectl: 'v1.25.16', kind: 'v0.20.0', helm: 'v3.13.2' },
{ node: 'v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31', kubectl: 'v1.28.4', kind: 'v0.20.0', helm: 'v3.14.4' }]
steps:
- uses: actions/checkout@v4
with:
ref: v1.16.x
- uses: ./.github/workflows/composite-actions/regression-tests

regression_tests_15:
name: v1.15.x regression tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression && inputs.branch == 'v1.15.x') || github.event.schedule == '0 8 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
kube-e2e-test-type: ['gateway', 'gloo', 'ingress', 'helm', 'gloomtls', 'glooctl', 'upgrade']
kube-version: [ { node: 'v1.23.13@sha256:ef453bb7c79f0e3caba88d2067d4196f427794086a7d0df8df4f019d5e336b61', kubectl: 'v1.23.17', kind: 'v0.17.0', helm: 'v3.11.2' },
{ node: 'v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' } ]
steps:
- uses: actions/checkout@v4
with:
ref: v1.15.x
- uses: ./.github/workflows/composite-actions/regression-tests

performance_tests_on_demand:
name: on demand performance tests
if: ${{ github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'workflow_initiating_branch' }}
Expand All @@ -350,107 +133,11 @@ jobs:
- uses: ./.github/workflows/composite-actions/prep-go-runner
- uses: ./.github/workflows/composite-actions/performance-tests

performance_tests_main:
name: main performance tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'main') || github.event.schedule == '0 5 * * *' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
ref: main
- uses: ./.github/workflows/composite-actions/prep-go-runner
- uses: ./.github/workflows/composite-actions/performance-tests

performance_tests_17:
name: v1.17.x performance tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
ref: v1.17.x
- uses: ./.github/workflows/composite-actions/prep-go-runner
- uses: ./.github/workflows/composite-actions/performance-tests

performance_tests_16:
name: v1.16.x performance tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.16.x') || github.event.schedule == '0 7 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
ref: v1.16.x
- uses: ./.github/workflows/composite-actions/prep-go-runner
- uses: ./.github/workflows/composite-actions/performance-tests

performance_tests_15:
name: v1.15.x performance tests
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance && inputs.branch == 'v1.15.x') || github.event.schedule == '0 8 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
ref: v1.15.x
- uses: ./.github/workflows/composite-actions/prep-go-runner
- uses: ./.github/workflows/composite-actions/performance-tests

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.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72', kubectl: 'v1.27.3', kind: 'v0.20.0', helm: 'v3.13.2' },
{ node: 'v1.31.0@sha256:53df588e04085fd41ae12de0c3fe4c72f7013bba32a20e7325357a1ac94ba865', kubectl: 'v1.31.0', kind: 'v0.24.0', helm: 'v3.14.4' }]
image-variant:
- standard
steps:
- uses: actions/checkout@v4
with:
ref: main
- uses: ./.github/workflows/composite-actions/kube-gateway-api-conformance-tests

kube_gateway_api_conformance_tests_17:
name: Conformance (branch=v1.17.x, type=Kubernetes Gateway API, version=${{matrix.kube-version.node}} )
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-conformance && inputs.branch == 'v1.17.x') || github.event.schedule == '0 6 * * 1' }}
runs-on: ubuntu-22.04
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
kube-version: [ { node: 'v1.25.16@sha256:5da57dfc290ac3599e775e63b8b6c49c0c85d3fec771cd7d55b45fae14b38d3b', kubectl: 'v1.25.16', kind: 'v0.20.0', helm: 'v3.13.2' },
{ node: 'v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245', kubectl: 'v1.29.2', kind: 'v0.20.0', helm: 'v3.14.4' } ]
image-variant:
- standard
steps:
- uses: actions/checkout@v4
with:
ref: v1.17.x
- uses: ./.github/workflows/composite-actions/kube-gateway-api-conformance-tests

publish_results:
runs-on: ubuntu-22.04
timeout-minutes: 5
if: ${{ always() }}
needs:
- end_to_end_tests_main
- end_to_end_tests_17
- regression_tests_main
- regression_tests_17
- regression_tests_16
- regression_tests_15
- performance_tests_main
- performance_tests_17
- performance_tests_16
- performance_tests_15
- kube_gateway_api_conformance_tests_main
- kube_gateway_api_conformance_tests_17
- end_to_end_tests_on_demand
- regression_tests_on_demand
- performance_tests_on_demand
Expand All @@ -465,18 +152,6 @@ jobs:
trigger="Gloo OSS Manual run"
branch=${{ inputs.branch }}
echo "SLACK_CHANNEL=C0314KESVNV" >> $GITHUB_ENV #slack-integration-testing if manually run
elif [[ ${{github.event.schedule == '0 5 * * *'}} = true ]]; then
trigger="Gloo OSS nightlies"
branch="main"
elif [[ ${{github.event.schedule == '0 6 * * 1'}} = true ]]; then
trigger="Gloo OSS weeklies"
branch="v1.17.x"
elif [[ ${{github.event.schedule == '0 7 * * 1'}} = true ]]; then
trigger="Gloo OSS weeklies"
branch="v1.16.x"
elif [[ ${{github.event.schedule == '0 8 * * 1'}} = true ]]; then
trigger="Gloo OSS nightlies"
branch="v1.15.x"
fi
preamble="$trigger ($branch)"
echo "Setting PREAMBLE as $preamble"
Expand Down
4 changes: 4 additions & 0 deletions changelog/v1.18.0-rc4/1-18-branch-cleanup.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
changelog:
- type: NON_USER_FACING
description: >-
Cleanup the v1.18.x branch after creating it

0 comments on commit da30538

Please sign in to comment.