-
Notifications
You must be signed in to change notification settings - Fork 1
144 lines (111 loc) · 3.11 KB
/
ci.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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
name: CI
on:
workflow_call:
secrets:
CODACY_PROJECT_TOKEN:
required: true
permissions:
actions: read
contents: read
statuses: write
jobs:
Go:
name: Go
runs-on: ubuntu-latest
strategy:
matrix:
go: [ '1.22.x', '1.23.x' ]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Download dependencies
run: make deps
- name: Build binary
run: make all
- name: Run tests
run: go test -covermode=count ./parser ./recipe -coverprofile=cover.out
- name: Send coverage data to Coveralls
uses: essentialkaos/goveralls-action@v2
env:
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
profile: cover.out
parallel: true
flag-name: linux-${{ matrix.go }}
- name: Send coverage data to Codacy
env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
run: |
bash <(curl -Ls https://coverage.codacy.com/get.sh) report \
--force-coverage-parser go \
-r cover.out \
--partial
SendCoverage:
name: Send Coverage
runs-on: ubuntu-latest
if: success() || failure()
needs: Go
steps:
- name: Finish parallel tests (Coveralls)
uses: essentialkaos/goveralls-action@v2
env:
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
parallel-finished: true
- name: Finish parallel tests (Codacy)
env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
run: bash <(curl -Ls https://coverage.codacy.com/get.sh) final
Aligo:
name: Aligo
runs-on: ubuntu-latest
needs: Go
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.22.x'
- name: Download dependencies
run: make deps
- name: Check Golang sources with Aligo
uses: essentialkaos/aligo-action@v2
with:
files: ./...
Shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
needs: Go
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check scripts with Shellcheck
uses: essentialkaos/shellcheck-action@v1
with:
files: scripts/bibop-dep scripts/bibop-docker scripts/bibop-entrypoint scripts/bibop-libtest-gen scripts/bibop-linked scripts/bibop-massive scripts/bibop-multi-check scripts/bibop-so-exported
Hadolint:
name: Hadolint
runs-on: ubuntu-latest
needs: Go
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check dockerfiles with Hadolint
uses: essentialkaos/hadolint-action@v1
with:
files: .docker/*.docker
Typos:
name: Typos
runs-on: ubuntu-latest
needs: Go
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check spelling
continue-on-error: true
uses: crate-ci/typos@master