2525 with :
2626 go-version : ' 1.26.1'
2727
28- - name : Download dependencies
28+ - name : Create workspace
2929 run : |
30- cp go.work.ci go.work 2>/dev/null || cat > go.work << 'EOF'
30+ cat > go.work << 'EOF'
3131 go 1.26.1
3232 use .
3333 replace (
@@ -38,63 +38,52 @@ jobs:
3838 github.com/GrayCodeAI/sight => ../sight
3939 )
4040 EOF
41- go mod download
4241
4342 - name : Run tests
44- run : go test -v -race -coverprofile=coverage.out ./...
45-
46- - name : Check coverage
47- run : |
48- go tool cover -func=coverage.out | tail -1
49- go tool cover -html=coverage.out -o coverage.html
50-
51- - name : Upload coverage
52- uses : actions/upload-artifact@v4
53- with :
54- name : coverage
55- path : coverage.html
43+ run : go test -race -count=1 -timeout=120s ./...
5644
5745 lint :
5846 runs-on : ubuntu-latest
5947 steps :
6048 - uses : actions/checkout@v4
6149
50+ - name : Checkout dependencies
51+ run : |
52+ git clone --depth=1 https://github.com/GrayCodeAI/eyrie.git ../eyrie
53+ git clone --depth=1 https://github.com/GrayCodeAI/tok.git ../tok
54+ git clone --depth=1 https://github.com/GrayCodeAI/yaad.git ../yaad
55+ git clone --depth=1 https://github.com/GrayCodeAI/inspect.git ../inspect
56+ git clone --depth=1 https://github.com/GrayCodeAI/sight.git ../sight
57+
6258 - name : Set up Go
6359 uses : actions/setup-go@v5
6460 with :
6561 go-version : ' 1.26.1'
6662
63+ - name : Create workspace
64+ run : |
65+ cat > go.work << 'EOF'
66+ go 1.26.1
67+ use .
68+ replace (
69+ github.com/GrayCodeAI/eyrie => ../eyrie
70+ github.com/GrayCodeAI/tok => ../tok
71+ github.com/GrayCodeAI/yaad => ../yaad
72+ github.com/GrayCodeAI/inspect => ../inspect
73+ github.com/GrayCodeAI/sight => ../sight
74+ )
75+ EOF
76+
6777 - name : golangci-lint
6878 uses : golangci/golangci-lint-action@v7
6979 with :
7080 version : v2.1.0
7181 install-mode : goinstall
7282 args : --timeout 5m
7383
74- - name : govulncheck
75- run : |
76- go install golang.org/x/vuln/cmd/govulncheck@latest
77- govulncheck ./...
78-
79- - name : Check formatting
80- run : |
81- if [ "$(gofmt -d . | wc -l)" -gt 0 ]; then
82- echo "Code is not formatted. Run 'gofmt -w .'"
83- gofmt -d .
84- exit 1
85- fi
86-
87- - name : Check module tidiness
88- run : |
89- go mod tidy
90- if [ -n "$(git diff --name-only go.mod go.sum)" ]; then
91- echo "go.mod or go.sum is not tidy. Run 'go mod tidy'"
92- exit 1
93- fi
94-
9584 build :
9685 runs-on : ubuntu-latest
97- needs : test
86+ needs : [ test, lint]
9887 strategy :
9988 matrix :
10089 goos : [linux, darwin, windows]
@@ -105,21 +94,36 @@ jobs:
10594 steps :
10695 - uses : actions/checkout@v4
10796
97+ - name : Checkout dependencies
98+ run : |
99+ git clone --depth=1 https://github.com/GrayCodeAI/eyrie.git ../eyrie
100+ git clone --depth=1 https://github.com/GrayCodeAI/tok.git ../tok
101+ git clone --depth=1 https://github.com/GrayCodeAI/yaad.git ../yaad
102+ git clone --depth=1 https://github.com/GrayCodeAI/inspect.git ../inspect
103+ git clone --depth=1 https://github.com/GrayCodeAI/sight.git ../sight
104+
108105 - name : Set up Go
109106 uses : actions/setup-go@v5
110107 with :
111108 go-version : ' 1.26.1'
112109
110+ - name : Create workspace
111+ run : |
112+ cat > go.work << 'EOF'
113+ go 1.26.1
114+ use .
115+ replace (
116+ github.com/GrayCodeAI/eyrie => ../eyrie
117+ github.com/GrayCodeAI/tok => ../tok
118+ github.com/GrayCodeAI/yaad => ../yaad
119+ github.com/GrayCodeAI/inspect => ../inspect
120+ github.com/GrayCodeAI/sight => ../sight
121+ )
122+ EOF
123+
113124 - name : Build
114125 env :
115126 GOOS : ${{ matrix.goos }}
116127 GOARCH : ${{ matrix.goarch }}
117- CGO_ENABLED : 0
118- run : |
119- go build -ldflags "-s -w -X main.Version=ci-test" -o hawk-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.goos == 'windows' && '.exe' || '' }} .
120-
121- - name : Upload binary
122- uses : actions/upload-artifact@v4
123- with :
124- name : hawk-${{ matrix.goos }}-${{ matrix.goarch }}
125- path : hawk-${{ matrix.goos }}-${{ matrix.goarch }}*
128+ CGO_ENABLED : " 0"
129+ run : go build -ldflags "-s -w" -o hawk-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.goos == 'windows' && '.exe' || '' }} .
0 commit comments