...
1name: validate
2on:
3 push:
4 tags:
5 - v*
6 branches:
7 - master
8 pull_request:
9
10jobs:
11
12 commit:
13 runs-on: ubuntu-20.04
14 # Only check commits on pull requests.
15 if: github.event_name == 'pull_request'
16 steps:
17 - name: get pr commits
18 id: 'get-pr-commits'
19 uses: tim-actions/get-pr-commits@v1.0.0
20 with:
21 token: ${{ secrets.GITHUB_TOKEN }}
22
23 - name: check subject line length
24 uses: tim-actions/commit-message-checker-with-regex@v0.3.1
25 with:
26 commits: ${{ steps.get-pr-commits.outputs.commits }}
27 pattern: '^.{0,72}(\n.*)*$'
28 error: 'Subject too long (max 72)'
29
30 lint:
31 runs-on: ubuntu-20.04
32 steps:
33 - uses: actions/checkout@v3
34 - uses: actions/setup-go@v3
35 with:
36 go-version: 1.20.x
37 - uses: golangci/golangci-lint-action@v3
38 with:
39 version: v1.51
40
41 cross:
42 runs-on: ubuntu-20.04
43 steps:
44 - uses: actions/checkout@v3
45 - name: cross
46 run: make build-cross
47
48 test-stubs:
49 runs-on: macos-latest
50 steps:
51 - uses: actions/checkout@v3
52 - uses: actions/setup-go@v3
53 with:
54 go-version: 1.20.x
55 - uses: golangci/golangci-lint-action@v3
56 with:
57 version: v1.51
58 - name: test-stubs
59 run: make test
60
61 test:
62 strategy:
63 fail-fast: false
64 matrix:
65 go-version: [1.19.x, 1.20.x]
66 race: ["-race", ""]
67 runs-on: ubuntu-20.04
68 steps:
69 - uses: actions/checkout@v3
70
71 - name: install go ${{ matrix.go-version }}
72 uses: actions/setup-go@v3
73 with:
74 stable: '!contains(${{ matrix.go-version }}, "beta") && !contains(${{ matrix.go-version }}, "rc")'
75 go-version: ${{ matrix.go-version }}
76
77 - name: build
78 run: make BUILDFLAGS="${{ matrix.race }}" build
79
80 - name: test
81 run: make TESTFLAGS="${{ matrix.race }}" test
View as plain text