-
Notifications
You must be signed in to change notification settings - Fork 9
130 lines (111 loc) · 3.1 KB
/
code.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: Code
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened, labeled]
branches:
- main
paths:
- "**"
- "!*.md"
- "!*.yaml"
- "!*.yml"
- "!LICENSE"
- "!docs/**"
- "CHANGELOG.md"
- ".github/workflows/**"
env:
GO_CURRENT: 1.22
GO_LATEST: 1.23
jobs:
static-checks:
runs-on: ubuntu-latest
strategy:
matrix:
go:
- version: "${{ env.GO_CURRENT }}"
name: target
- version: "${{ env.GO_LATEST }}"
name: latest
name: "Static checks with ${{ matrix.go.name }} Go"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go.version }}
- name: check if generate code is up-to-date
run: |
make generate
if [ -n "$(git status --porcelain=v1)" ]; then git add -N .; git diff; exit 1; fi
- name: check if go.mod and go.sum are tidy
run: make depscheck
- name: check code format
run: make fmtcheck
- name: check code quality
run: make go-lint
unit-tests:
runs-on: ubuntu-latest
strategy:
matrix:
go:
- version: "${{ env.GO_CURRENT }}"
name: target
- version: "${{ env.GO_LATEST }}"
name: latest
name: "Unit tests with ${{ matrix.go.name }} Go"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go.version }}
- name: run unit tests
run: make test
- name: upload coverage
uses: actions/upload-artifact@v4
with:
name: unit-coverage-${{ matrix.go.name }}
path: coverage.out
integration-tests:
if: ${{ github.event.label.name == 'integration_tests' }}
needs:
- unit-tests
- static-checks
runs-on: ubuntu-latest
strategy:
matrix:
go:
- version: "${{ env.GO_CURRENT }}"
name: target
name: "Integration tests with ${{ matrix.go.name }} Go (trusted)"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go.version }}
- name: run integration tests
env:
ANEXIA_TOKEN: ${{ secrets.ANEXIA_TOKEN }}
run: make func-test
- name: upload coverage
uses: actions/upload-artifact@v4
with:
name: integration-coverage-${{ matrix.go.name }}
path: coverage.out
upload-results:
needs: integration-tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- uses: paambaati/[email protected]
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
with:
prefix: go.anx.io/go-anxcloud
coverageLocations: |
${{ github.workspace }}/unit-coverage-target/coverage.out:gocov
${{ github.workspace }}/unit-coverage-latest/coverage.out:gocov
${{ github.workspace }}/integration-coverage-target/coverage.out:gocov
${{ github.workspace }}/integration-coverage-latest/coverage.out:gocov