-
Notifications
You must be signed in to change notification settings - Fork 6
93 lines (90 loc) · 2.39 KB
/
build-test.yaml
File metadata and controls
93 lines (90 loc) · 2.39 KB
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
---
name: "Build & Test"
on: # yamllint disable-line rule:truthy
push:
branches:
- "main"
pull_request:
branches:
- "*"
merge_group:
types:
- "checks_requested"
jobs:
paths-filter:
runs-on: "ubuntu-latest"
outputs:
codechange: "${{ steps.code-filter.outputs.codechange }}"
steps:
- uses: "actions/checkout@v6"
- uses: "dorny/paths-filter@v3"
id: "code-filter"
with:
filters: |
codechange:
- ".github/workflows/build-test.yaml"
- "Dockerfile"
- "go.mod"
- "go.sum"
- "cmd/**"
- "magefiles/**"
- "pkg/**"
- "e2e/**"
- "internal/**"
build:
name: "Build Binary"
runs-on: "ubuntu-latest"
needs: "paths-filter"
if: |
needs.paths-filter.outputs.codechange == 'true'
steps:
- uses: "actions/checkout@v6"
- uses: "authzed/actions/setup-go@main"
- uses: "authzed/actions/go-build@main"
go-lint:
name: "Lint Go"
runs-on: "ubuntu-latest"
needs: "paths-filter"
if: |
needs.paths-filter.outputs.codechange == 'true'
steps:
- uses: "actions/checkout@v6"
- uses: "authzed/actions/setup-go@main"
- name: "Lint Go"
uses: "authzed/actions/golangci-lint@main"
unit:
name: "Unit"
runs-on: "ubuntu-latest-4-cores"
needs: "paths-filter"
if: |
needs.paths-filter.outputs.codechange == 'true'
steps:
- uses: "actions/checkout@v6"
- uses: "authzed/actions/setup-go@main"
- name: "Unit tests"
uses: "magefile/mage-action@v3"
with:
version: "latest"
args: "test:unit"
- name: "Upload coverage reports to Codecov"
uses: "codecov/codecov-action@v5"
with:
token: ${{ secrets.CODECOV_TOKEN }}
e2e:
name: "e2e Tests"
runs-on: "ubuntu-latest-4-cores"
needs: "paths-filter"
if: |
needs.paths-filter.outputs.codechange == 'true'
steps:
- uses: "actions/checkout@v6"
- uses: "authzed/actions/setup-go@main"
- name: "e2e tests"
uses: "magefile/mage-action@v3"
with:
version: "latest"
args: "test:e2e"
- name: "Upload coverage reports to Codecov"
uses: "codecov/codecov-action@v5"
with:
token: ${{ secrets.CODECOV_TOKEN }}