Nightly #357
This file contains 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 * * 1-5" # weekdays @ 00:00 EST, run tests against latest main | |
- cron: "10 10 * * 1" # monday @ 05:10 EST, run expanded tests against v1.14.x | |
- cron: "6 6 * * 1" # monday @ 01:06 EST, run expanded tests against v1.13.x | |
workflow_dispatch: | |
inputs: | |
run-regression: | |
description: "Run regression tests" | |
type: boolean | |
run-performance: | |
description: "Run performance tests" | |
type: boolean | |
jobs: | |
regression_tests_latest_main: | |
name: latest main regression tests | |
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-regression) || github.event.schedule == '0 5 * * 1-5' }} | |
runs-on: ubuntu-22.04 | |
# 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: | |
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.26.3@sha256:61b92f38dff6ccc29969e7aa154d34e38b89443af1a2c14e6cfbd2df6419c66f', kubectl: 'v1.26.4', kind: 'v0.18.0', helm: 'v3.11.2' }] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/workflows/composite-actions/regression-tests | |
performance_tests_latest_main: | |
name: latest performance tests | |
if: ${{ (github.event_name == 'workflow_dispatch' && inputs.run-performance) || github.event.schedule == '0 5 * * 1-5' }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/workflows/composite-actions/prep-go-runner | |
- uses: ./.github/workflows/composite-actions/performance-tests | |
regression_tests_14: | |
name: v1.14.x regression tests | |
if: github.event.schedule == '10 10 * * 1' | |
runs-on: ubuntu-22.04 | |
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.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1', kubectl: 'v1.25.8', kind: 'v0.17.0', helm: 'v3.11.2' }] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: v1.14.x | |
- uses: ./.github/actions/regression-tests | |
regression_tests_13: | |
name: v1.13.x regression tests | |
if: github.event.schedule == '6 6 * * 1' | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
kube-e2e-test-type: ['gateway', 'gloo', 'ingress', 'helm', 'gloomtls', 'glooctl', 'upgrade'] | |
kube-version: [ { node: 'v1.21.14@sha256:9d9eb5fb26b4fbc0c6d95fa8c790414f9750dd583f5d7cee45d92e8c26670aa1', kubectl: 'v1.21.14', kind: 'v0.17.0', helm: 'v3.9.4' }, | |
{ node: 'v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315', kubectl: 'v1.24.7', kind: 'v0.17.0', helm: 'v3.9.4' } ] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: v1.13.x | |
- uses: ./.github/actions/regression-tests | |
publish_results: | |
runs-on: ubuntu-22.04 | |
if: ${{ always() }} | |
needs: [ regression_tests_latest_main, performance_tests_latest_main, regression_tests_14, regression_tests_13 ] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: compute-preamble | |
id: compute-preamble | |
shell: bash | |
run: | | |
echo "SLACK_CHANNEL=C04CJMXAH7A" >> $GITHUB_ENV #edge-nightly-results by default | |
if [[ ${{github.event_name == 'workflow_dispatch'}} = true ]]; then | |
preamble="Gloo OSS nightlies (manual run)" | |
echo "SLACK_CHANNEL=C0314KESVNV" >> $GITHUB_ENV #slack-integration-testing if manually run | |
elif [[ ${{github.event.schedule == '6 6 * * 1'}} = true ]]; then | |
preamble="Gloo OSS weeklies (v1.13.x)" | |
elif [[ ${{github.event.schedule == '10 10 * * 1'}} = true ]]; then | |
preamble="Gloo OSS weeklies (v1.14.x)" | |
elif [[ ${{github.event.schedule == '0 5 * * 1-5'}} = true ]]; then | |
preamble="Gloo OSS nightlies (main)" | |
fi | |
echo "Setting PREAMBLE as $preamble" | |
echo "preamble=$preamble" >> $GITHUB_OUTPUT | |
- uses: actions/setup-go@v4 | |
with: | |
go-version-file: go.mod | |
- uses: actions/download-artifact@v3 | |
- name: send slack message | |
env: | |
PARENT_JOB_URL: https://github.com/solo-io/gloo/actions/runs/${{github.run_id}} # parent job hyperlink | |
PREAMBLE: ${{ steps.compute-preamble.outputs.preamble }} # text to hyperlink at start of slack message | |
SLACKBOT_BEARER: ${{ secrets.SLACKBOT_BEARER }} | |
run: | | |
test_results="$(cat */test-out.json | jq -c --slurp .)" | |
echo $test_results | |
go run .github/workflows/helpers/notify-from-json.go $test_results |