Skip to content

add 'htnn' as the subdomain of CRD group #864

add 'htnn' as the subdomain of CRD group

add 'htnn' as the subdomain of CRD group #864

Workflow file for this run

name: test
on:
push:
branches: [ "main" ]
paths-ignore:
- "site/**"
- "**/*.md"
pull_request:
branches: [ "main" ]
paths-ignore:
- "site/**"
- "**/*.md"
concurrency:
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_number || github.ref }}
cancel-in-progress: true
env:
IN_CI: true
jobs:
unit-test:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Test
run: make unit-test
- name: Upload artifact
if: always() # always upload coverage, so the coverage percents won't affect by the failed tests
uses: actions/upload-artifact@v4
with:
name: unit-test-cover
path: ./cover.out
plugins-integration-test:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Set up services
run: |
make start-service
- name: Build
run: make build-test-so
- name: Test
run: make plugins-integration-test
- name: Upload logs
uses: actions/upload-artifact@v4
if: failure()
with:
# upload artifact can be found in https://github.com/mosn/htnn/actions/runs/$id
name: ci-logs
path: ./test-envoy
- name: Generate coverage
if: always()
run: |
go tool covdata textfmt -i=/tmp/htnn_coverage -o plugins/tests/integration/cover.out -v 2
- name: Upload artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: plugins-integration-test-cover
path: plugins/tests/integration/cover.out
controller-test:
timeout-minutes: 10
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./controller
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: binary cache
uses: actions/cache@v4
with:
path: ./controller/bin
key: ${{ runner.os }}-${{ hashFiles('./controller/Makefile') }}
- name: Set up services
run: |
make start-controller-service
- name: Test
run: make test
- name: Upload artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: controller-test-cover
path: ./controller/cover.out
coverage:
timeout-minutes: 10
runs-on: ubuntu-latest
needs: [unit-test, plugins-integration-test, controller-test]
if: always()
steps:
- uses: actions/checkout@v4
- name: Download artifact
uses: actions/download-artifact@v4
- name: Upload to codecov
uses: codecov/[email protected]
with:
fail_ci_if_error: true
files: ./unit-test-cover/cover.out,
./plugins-integration-test-cover/cover.out,
./controller-test-cover/cover.out
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
misc-test:
timeout-minutes: 10
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Test
run: make verify-example
e2e-test:
timeout-minutes: 25
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: binary cache
uses: actions/cache@v4
with:
path: ./bin
key: ${{ runner.os }}-${{ hashFiles('./Makefile') }}
- name: binary cache (for controller)
uses: actions/cache@v4
with:
path: ./controller/bin
key: ${{ runner.os }}-${{ hashFiles('./controller/Makefile') }}
- name: Prepare cluster
run: make delete-cluster create-cluster deploy-cert-manager e2e-prepare-data-plane-image deploy-istio
- name: Prepare controller
run: make e2e-build-controller-image deploy-controller
- name: Test
run: make run-e2e