Skip to content

chore(ci) test against older KIC/Kong versions #739

chore(ci) test against older KIC/Kong versions

chore(ci) test against older KIC/Kong versions #739

Workflow file for this run

name: PR tests
concurrency:
# Run only for most recent commit in PRs but for all tags and commits on main
# Ref: https://docs.github.com/en/actions/using-jobs/using-concurrency
group: ${{ github.workflow }}-${{ github.head_ref || github.sha }}
cancel-in-progress: true
on:
pull_request:
branches:
- main
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: setup golang
uses: actions/setup-go@v4
with:
go-version: '^1.20'
- name: cache go modules
uses: actions/cache@v3
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-codegen-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-build-codegen-
- name: Run linters
run: make lint
lint-test:
runs-on: ubuntu-latest
env:
# Specify this here because these tests rely on ktf to run kind for cluster creation.
KIND_VERSION: v0.20.0
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.11.0
- name: Add Helm repos
run: |
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add kong https://charts.konghq.com
- uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Set up chart-testing
uses: helm/[email protected]
- name: Run chart-testing (lint)
run: ct lint --check-version-increment=false
- name: setup testing environment (kind-cluster)
env:
KUBERNETES_VERSION: ${{ matrix.kubernetes-version }}
run: ./scripts/test-env.sh
- name: Run chart-testing (install)
run: ct install --charts charts/kong
integration-test:
runs-on: ubuntu-latest
env:
# Specify this here because these tests rely on ktf to run kind for cluster creation.
KIND_VERSION: v0.20.0
strategy:
matrix:
kubernetes-version:
- "1.21.14"
- "1.22.15"
- "1.23.13"
- "1.24.7"
- "1.25.9"
- "1.26.4"
- "1.27.1"
chart-name:
- kong
- ingress
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: setup helm
uses: azure/setup-helm@v3
with:
version: v3.11.0
- name: setup testing environment (kind-cluster)
env:
KUBERNETES_VERSION: ${{ matrix.kubernetes-version }}
run: ./scripts/test-env.sh
- name: run integration tests (integration)
env:
CHART_NAME: ${{ matrix.chart-name }}
run: ./scripts/test-run.sh
- name: run upgrade integration tests (integration-upgrade)
env:
CHART_NAME: ${{ matrix.chart-name }}
run: ./scripts/test-upgrade.sh
- name: cleanup integration tests (cleanup)
run: ./scripts/test-env.sh cleanup
oldversion-integration-test:
runs-on: ubuntu-latest
env:
# Specify this here because these tests rely on ktf to run kind for cluster creation.
KIND_VERSION: v0.20.0
strategy:
matrix:
kic-version:
- "2.10"
kong-version:
- "3.3"
- "3.2"
chart-name:
- kong
- ingress
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: setup helm
uses: azure/setup-helm@v3
with:
version: v3.11.0
- name: setup testing environment (kind-cluster)
run: ./scripts/test-env.sh
- name: run integration tests (integration)
env:
CHART_NAME: ${{ matrix.chart-name }}
KONG_VERSION: ${{ matrix.kong-version }}
KIC_VERSION: ${{ matrix.kic-version }}
run: ./scripts/test-run.sh
- name: cleanup integration tests (cleanup)
run: ./scripts/test-env.sh cleanup
# Workaround to allow checking the matrix tests as required tests without adding the individual cases
# Ref: https://github.com/orgs/community/discussions/26822#discussioncomment-3305794
passed:
runs-on: ubuntu-latest
needs:
- lint
- lint-test
- integration-test
- oldversion-integration-test
if: always()
steps:
- if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}
run: |
echo "Some jobs failed or were cancelled."
exit 1