100 lines
2.4 KiB
YAML
100 lines
2.4 KiB
YAML
name: Tests / Code Coverage
|
|
on:
|
|
pull_request:
|
|
merge_group:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ci-${{ github.ref }}-tests
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
test-unit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: 1.21.5
|
|
cache: true
|
|
cache-dependency-path: go.sum
|
|
- uses: technote-space/get-diff-action@v6.1.2
|
|
id: git_diff
|
|
with:
|
|
PATTERNS: |
|
|
**/*.go
|
|
go.mod
|
|
go.sum
|
|
- name: Unit Tests
|
|
if: env.GIT_DIFF
|
|
run: |
|
|
go work init
|
|
make test-unit
|
|
- name: Test Coverage
|
|
run: |
|
|
go work init ||:
|
|
make test-cover
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v3
|
|
env:
|
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
with:
|
|
files: cover.out
|
|
test-integration:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version: 1.21.5
|
|
cache: true
|
|
cache-dependency-path: go.sum
|
|
- uses: technote-space/get-diff-action@v6.1.2
|
|
id: git_diff
|
|
with:
|
|
PATTERNS: |
|
|
**/*.go
|
|
go.mod
|
|
go.sum
|
|
- name: tests
|
|
if: env.GIT_DIFF
|
|
run: |
|
|
go work init
|
|
make test-integration
|
|
test-e2e:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 25
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: technote-space/get-diff-action@v6.1.2
|
|
with:
|
|
PATTERNS: |
|
|
**/**.go
|
|
go.mod
|
|
go.sum
|
|
- uses: actions/setup-go@v5
|
|
if: env.GIT_DIFF
|
|
with:
|
|
go-version: 1.21.5
|
|
cache: true
|
|
|
|
# In this step, this action saves a list of existing images, the cache is
|
|
# created without them in the post run. It also restores the cache if it
|
|
# exists.
|
|
- name: cache docker layer
|
|
uses: satackey/action-docker-layer-caching@v0.0.11
|
|
if: env.GIT_DIFF
|
|
# Ignore the failure of a step and avoid terminating the job.
|
|
continue-on-error: true
|
|
|
|
- name: E2E Tests
|
|
if: env.GIT_DIFF
|
|
run: |
|
|
go work init
|
|
make test-e2e
|