Skip to content

Test

Test #4282

Workflow file for this run

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