Test #4283
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: Test | |
on: | |
push: | |
branches: ['main'] | |
pull_request: | |
branches: ['*'] | |
paths-ignore: | |
- '**.adoc' | |
- '**.md' | |
- 'examples/**' | |
- 'LICENSE' | |
schedule: | |
- cron: "15 1 * * *" | |
workflow_dispatch: | |
jobs: | |
unit-tests: | |
name: Unit Tests | |
strategy: | |
matrix: | |
go-version: [1.22.x] | |
platform: [ubuntu-latest] | |
runs-on: ${{ matrix.platform }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Set up Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ matrix.go-version }} | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Run make test | |
run: | | |
make test-unit | |
- name: Upload unit-test coverage reports to CodeCov | |
# more at https://github.com/codecov/codecov-action | |
# Only run if the feature branch is in your repo (not in a fork) | |
# as Tokenless uploading is rate limited for public repos | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: unit | |
fail_ci_if_error: false | |
verbose: true | |
controllers-integration-tests: | |
name: Integration Tests for kuadrant-operator/controllers | |
strategy: | |
matrix: | |
include: | |
- gatewayapi-provider: istio | |
istio-type: istioctl | |
# - gatewayapi-provider: istio | |
# istio-type: sail | |
- gatewayapi-provider: envoygateway | |
fail-fast: false | |
runs-on: ubuntu-latest | |
env: | |
KIND_CLUSTER_NAME: kuadrant-test | |
KUADRANT_NAMESPACE: kuadrant-system | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Create k8s Kind Cluster | |
uses: helm/kind-action@v1.2.0 | |
with: | |
version: v0.23.0 | |
config: utils/kind-cluster.yaml | |
cluster_name: ${{ env.KIND_CLUSTER_NAME }} | |
wait: 120s | |
- name: Check cluster info | |
run: | | |
kubectl cluster-info dump | |
- name: Run make env-setup GATEWAYAPI_PROVIDER=${{ matrix.gatewayapi-provider }} ISTIO_INSTALL_SAIL=${{ matrix.istio-type == 'sail' && true || false }} | |
run: | | |
make env-setup GATEWAYAPI_PROVIDER=${{ matrix.gatewayapi-provider }} ISTIO_INSTALL_SAIL=${{ matrix.istio-type == 'sail' && true || false }} | |
- name: Run integration tests | |
run: | | |
make test-integration GATEWAYAPI_PROVIDER=${{ matrix.gatewayapi-provider }} | |
- name: Upload integration-test coverage reports to CodeCov | |
# more at https://github.com/codecov/codecov-action | |
# Only run if the feature branch is in your repo (not in a fork) | |
# as Tokenless uploading is rate limited for public repos | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: controllers-integration | |
fail_ci_if_error: false | |
verbose: true | |
- name: Check kuadrant status | |
if: always() | |
run: | | |
kubectl get pods -n kuadrant-system | |
bare-k8s-integration-tests: | |
name: Integration Tests for kuadrant-operator/tests/bare_k8s | |
runs-on: ubuntu-latest | |
env: | |
KIND_CLUSTER_NAME: kuadrant-test | |
KUADRANT_NAMESPACE: kuadrant-system | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Create k8s Kind Cluster | |
uses: helm/kind-action@v1.2.0 | |
with: | |
version: v0.23.0 | |
config: utils/kind-cluster.yaml | |
cluster_name: ${{ env.KIND_CLUSTER_NAME }} | |
wait: 120s | |
- name: Check cluster info | |
run: | | |
kubectl cluster-info dump | |
- name: Run make k8s-env-setup | |
run: | | |
make k8s-env-setup | |
- name: Run integration tests | |
run: | | |
make test-bare-k8s-integration | |
- name: Upload integration-test coverage reports to CodeCov | |
# more at https://github.com/codecov/codecov-action | |
# Only run if the feature branch is in your repo (not in a fork) | |
# as Tokenless uploading is rate limited for public repos | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: bare-k8s-integration | |
fail_ci_if_error: false | |
verbose: true | |
gatewayapi-integration-tests: | |
name: Integration Tests for kuadrant-operator/tests/gatewayapi | |
runs-on: ubuntu-latest | |
env: | |
KIND_CLUSTER_NAME: kuadrant-test | |
KUADRANT_NAMESPACE: kuadrant-system | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Create k8s Kind Cluster | |
uses: helm/kind-action@v1.2.0 | |
with: | |
version: v0.23.0 | |
config: utils/kind-cluster.yaml | |
cluster_name: ${{ env.KIND_CLUSTER_NAME }} | |
wait: 120s | |
- name: Check cluster info | |
run: | | |
kubectl cluster-info dump | |
- name: Run make gatewayapi-env-setup | |
run: | | |
make gatewayapi-env-setup | |
- name: Run integration tests | |
run: | | |
make test-gatewayapi-env-integration | |
- name: Upload integration-test coverage reports to CodeCov | |
# more at https://github.com/codecov/codecov-action | |
# Only run if the feature branch is in your repo (not in a fork) | |
# as Tokenless uploading is rate limited for public repos | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: gatewayapi-integration | |
fail_ci_if_error: false | |
verbose: true | |
gatewayapi-provider-integration-tests: | |
name: Integration Tests for kuadrant-operator/tests/[gatewayapi-provider] | |
strategy: | |
matrix: | |
gatewayapi-provider: [istio, envoygateway] | |
fail-fast: false | |
runs-on: ubuntu-latest | |
env: | |
KIND_CLUSTER_NAME: kuadrant-test | |
KUADRANT_NAMESPACE: kuadrant-system | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Create k8s Kind Cluster | |
uses: helm/kind-action@v1.2.0 | |
with: | |
version: v0.23.0 | |
config: utils/kind-cluster.yaml | |
cluster_name: ${{ env.KIND_CLUSTER_NAME }} | |
wait: 120s | |
- name: Check cluster info | |
run: | | |
kubectl cluster-info dump | |
- name: Run make ${{ matrix.gatewayapi-provider }}-env-setup | |
run: | | |
make ${{ matrix.gatewayapi-provider }}-env-setup | |
- name: Run integration tests | |
run: | | |
make test-${{ matrix.gatewayapi-provider }}-env-integration | |
- name: Upload integration-test coverage reports to CodeCov | |
# more at https://github.com/codecov/codecov-action | |
# Only run if the feature branch is in your repo (not in a fork) | |
# as Tokenless uploading is rate limited for public repos | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: ${{ matrix.gatewayapi-provider }}-integration | |
fail_ci_if_error: false | |
verbose: true | |
- name: Check kuadrant status | |
if: always() | |
run: | | |
kubectl get pods -n kuadrant-system | |
verify-manifests: | |
name: Verify manifests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Run make verify-manifests | |
run: | | |
make verify-manifests | |
verify-bundle: | |
name: Verify bundle | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Run make verify-bundle | |
run: | | |
make verify-bundle | |
verify-fmt: | |
name: Verify fmt | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Run make verify-fmt | |
run: | | |
make verify-fmt | |
test-scripts: | |
name: Test Scripts | |
strategy: | |
matrix: | |
go-version: [1.22.x] | |
platform: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.platform }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Set up Go ${{ matrix.go-version }} | |
uses: actions/setup-go@v4 | |
with: | |
go-version: ${{ matrix.go-version }} | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Run make operator-sdk | |
run: | | |
make operator-sdk | |
verify-generate: | |
name: Verify generate | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Verify generate command | |
run: | | |
make verify-generate | |
verify-go-mod: | |
name: Verify go.mod | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Verify generate command | |
run: | | |
make verify-go-mod | |
verify-helm-charts: | |
name: Verify helm charts | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Go 1.22.x | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.22.x | |
id: go | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Run make verify-helm-charts | |
run: | | |
make verify-helm-charts |