generated from snivilised/astrolib
-
Notifications
You must be signed in to change notification settings - Fork 0
133 lines (113 loc) · 4.72 KB
/
ci-workflow.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
name: Traverse Continuous Integration
on:
push:
jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4
with:
go-version: 1.23
- uses: actions/checkout@v3
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.60.3
args: --verbose
test:
strategy:
matrix:
go-version: [1.23]
platform: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.platform }}
# Defining variables is awkward in gh-actions, they can't just be declared
# anywhere; in particular they can't be declared at the top of this file,
# nor can they be declared inside steps.
#
# see: GitHub Actions/Write workflows/Choose what workflows do/
# Store information in variables
#
env:
COVERAGE_OUTPUT: ${{ github.workspace }}/coverage.out
steps:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Install goveralls
run: go install github.com/mattn/goveralls@latest
- name: Install ginkgo
run: go install github.com/onsi/ginkgo/v2/[email protected]
- name: Checkout code
uses: actions/checkout@v4
- name: Print current directory and workspace
run: |
echo "Current directory: $(pwd)"
echo "GitHub workspace: ${{ github.workspace }}"
echo "COVERAGE_OUTPUT: $COVERAGE_OUTPUT"
- name: Ensure coverage directory exists
run: |
mkdir -p ${{ github.workspace }}/coverage
mkdir -p ${{ github.workspace }}/collections/coverage
mkdir -p ${{ github.workspace }}/core/coverage/
mkdir -p ${{ github.workspace }}/cycle/coverage
mkdir -p ${{ github.workspace }}/enums/coverage
mkdir -p ${{ github.workspace }}/internal/feat/filter/coverage
mkdir -p ${{ github.workspace }}/internal/feat/hiber/coverage
mkdir -p ${{ github.workspace }}/internal/feat/resume/coverage
mkdir -p ${{ github.workspace }}/internal/feat/sampling/coverage
mkdir -p ${{ github.workspace }}/internal/filtering/coverage
mkdir -p ${{ github.workspace }}/internal/kernel/coverage
mkdir -p ${{ github.workspace }}/internal/level/coverage
mkdir -p ${{ github.workspace }}/internal/measure/coverage
mkdir -p ${{ github.workspace }}/internal/services/coverage
mkdir -p ${{ github.workspace }}/internal/level/coverage
mkdir -p ${{ github.workspace }}/internal/third/bus/coverage
mkdir -p ${{ github.workspace }}/internal/third/lo/coverage
mkdir -p ${{ github.workspace }}/internal/types/coverage
mkdir -p ${{ github.workspace }}/locale/coverage
mkdir -p ${{ github.workspace }}/nfs/coverage
mkdir -p ${{ github.workspace }}/pref/coverage
mkdir -p ${{ github.workspace }}/tapable/coverage
- name: list coverage directory
run: ls -la ${{ github.workspace }}/coverage
# This should be ginko
# This works, but produces bad results (too many incorrect 0% coverage),
# so we need to get ginkgo working.
#
# - name: Run tests and generate coverage profile with Go test
# run: |
# go test ./... -coverprofile=${{ github.workspace }}/coverage/coverage.out
# - name: Run tests and generate coverage profile with Ginkgo
# run: ginkgo ./... --json-report ./ginkgo.report \
# -coverpkg=$(go list github.com/snivilised/traverse/...) \
# -coverprofile=${{ github.workspace }}/coverage/coverage.out -r
# onsi:
- name: Run tests and generate coverage profile with Ginkgo
run: ginkgo ./... --json-report ./ginkgo.report \
-coverpkg=$(go list github.com/snivilised/traverse/...) \
-coverprofile=${{ env.COVERAGE_OUTPUT }} -r
- name: list .out files
run: ls -la ${{ github.workspace }}/*.out
#######
# - name: Check if coverage file exists
# run: |
# if [ -f "${{ env.COVERAGE_OUTPUT }}" ]; then
# echo "Coverage file generated successfully"
# else
# echo "Coverage file not found"
# exit 1
# fi
- name: Generate HTML coverage report
run: |
if [ -f ${{ env.COVERAGE_OUTPUT }} ]; then
go tool cover -html=${{ env.COVERAGE_OUTPUT }} -o ${{ github.workspace }}/coverage/coverage.html
else
echo "coverage.out file not found"
exit 1
fi
- name: Upload coverage to Coveralls
uses: shogo82148/actions-goveralls@v1
with:
path-to-profile: ${{ env.COVERAGE_OUTPUT }}