Skip to content

tests: speed & other minor improvements #2512

tests: speed & other minor improvements

tests: speed & other minor improvements #2512

Workflow file for this run

name: Test
on:
push:
branches: [ 'main' ]
pull_request:
branches: [ '*' ]
schedule:
- cron: "15 1 * * *"
jobs:
unit-tests:
name: Unit Tests
strategy:
matrix:
go-version: [ 1.21.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@v3
- 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
integration-tests:
name: Integration Tests
strategy:
matrix:
istio-type: [ sail, istioctl ]
pr-event:
- ${{ github.event_name == 'pull_request' }}
exclude:
- istio-type: sail
pr-event: true
runs-on: ubuntu-latest
env:
KIND_CLUSTER_NAME: kuadrant-test
KUADRANT_NAMESPACE: kuadrant-system
defaults:
run:
shell: bash
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v3
- name: Create k8s Kind Cluster
uses: helm/[email protected]
with:
version: v0.22.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 test-env-setup istio-type=${{ matrix.istio-type }}
run: |
make test-env-setup ISTIO_INSTALL_SAIL=${{ matrix.istio-type == 'sail' && true || false }}
- name: Wait for deployments
run: |
kubectl -n ${{ env.KUADRANT_NAMESPACE }} wait --timeout=300s --for=condition=Available deployments --all
- name: Run integration tests
run: |
make test-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: integration
fail_ci_if_error: false
verbose: true
verify-manifests:
name: Verify manifests
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v3
- name: Run make verify-manifests
run: |
make verify-manifests
verify-bundle:
name: Verify bundle
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v3
- name: Run make verify-bundle
run: |
make verify-bundle
verify-fmt:
name: Verify fmt
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.21.x
uses: actions/setup-go@v4
with:
go-version: 1.21.x
id: go
- name: Check out code
uses: actions/checkout@v3
- name: Run make verify-fmt
run: |
make verify-fmt
test-scripts:
name: Test Scripts
strategy:
matrix:
go-version: [ 1.21.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@v3
- name: Run make operator-sdk
run: |
make operator-sdk