-
Notifications
You must be signed in to change notification settings - Fork 3
141 lines (121 loc) · 3.37 KB
/
tests.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
---
name: Test
on:
- push
- pull_request
jobs:
# Build with latest version of Go
tools:
name: Tool
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
tool:
- cathtml
- cssh/cscp
- cssh/cssh
- clitable/cmd/csvtable
- grepp
- joinlines
- password-cache/cmd/password-cache
- webserve
- yaml-parse
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: 1.18
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- id: build
name: Build
run: |
go build -v .
dir=$(basename $PWD)
echo "dir: $dir"
echo "::set-output name=binary::$dir"
working-directory: ${{ matrix.tool }}
shell: bash
- name: Test
run: go test -coverprofile=coverage.txt -covermode=atomic ./...
working-directory: ${{ matrix.tool }}
- name: Upload
uses: actions/upload-artifact@v2
with:
path: ${{ matrix.tool }}/${{ steps.build.outputs.binary }}
name: ${{ steps.build.outputs.binary }} ${{ matrix.os }}
# Build with latest version of Go
tools-linux:
name: Tool
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
tool:
- cli-bookmarks
- ffind
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: 1.18
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- id: build
name: Build
run: |
go build -v .
dir=$(basename $PWD)
echo "dir: $dir"
echo "::set-output name=binary::$dir"
working-directory: ${{ matrix.tool }}
shell: bash
- name: Test
run: go test -coverprofile=coverage.txt -covermode=atomic ./...
working-directory: ${{ matrix.tool }}
- name: Upload
uses: actions/upload-artifact@v2
with:
path: ${{ matrix.tool }}/${{ steps.build.outputs.binary }}
name: ${{ steps.build.outputs.binary }} ${{ matrix.os }}
# Support last two releases of Go
libs:
name: Lib
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
go: [1.18, 1.17]
tool: [buildutils, run]
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Test
run: go test -coverprofile=coverage.txt -covermode=atomic ./...
working-directory: ${{ matrix.tool }}
# fs introduced in go 1.17
libs-current:
name: Lib
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
go: [1.18]
tool: [fsmodtime]
steps:
- name: Set up Go 1.x
uses: actions/setup-go@v2
with:
go-version: ${{ matrix.go }}
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Test
run: go test -coverprofile=coverage.txt -covermode=atomic ./...
working-directory: ${{ matrix.tool }}