1
1
name : Go
2
2
3
3
on :
4
+ workflow_call :
4
5
push :
5
6
branches :
6
7
- master
7
8
pull_request :
8
9
9
10
env :
10
11
TEST_RESULTS : /tmp/test-results # path to where test results will be saved
11
- GH_ACTIONS : " 1"
12
+ GH_ACTIONS : " 0"
13
+ TEST_SKIP_COMMENTS : " 1"
14
+ GO_VERSION : " 1.22.5"
12
15
13
16
14
17
jobs :
15
- test :
18
+ initialize_data :
19
+ name : Initialize Test Data
16
20
runs-on : ubuntu-latest
17
21
steps :
18
22
- name : Checkout Repository
@@ -22,40 +26,59 @@ jobs:
22
26
- name : Set up Go
23
27
uses : actions/setup-go@v5
24
28
with :
25
- go-version : " 1.21.6 "
29
+ go-version : ${{ env.GO_VERSION }}
26
30
- name : Verify go version
27
31
run : go version
28
- - name : Install GoTest
29
- run : go install gotest.tools/gotestsum@latest
30
- # - name: Install jet generator
31
- # run: cd tests && make install-jet-gen
32
32
- name : Init database
33
33
run : |
34
34
cd tests
35
- go run ./init/init.go -testsuite all
35
+ go run ./init/init.go -testsuite postgres
36
+ go run ./init/init.go -testsuite mariadb
37
+ go run ./init/init.go -testsuite mysql
38
+ # go run ./init/init.go -testsuite all
39
+ - uses : actions/upload-artifact@v4
40
+ with :
41
+ name : testData
42
+ include-hidden-files : true
43
+ path : ${{ github.workspace }}/tests/.gentestdata/
44
+ standard_tests :
45
+ name : Run Standard Tests
46
+ needs : initialize_data
47
+ runs-on : ubuntu-latest
48
+ steps :
49
+ - name : Checkout Repository
50
+ uses : actions/checkout@v4
51
+ with :
52
+ submodules : ' true'
53
+ - name : Set up Go
54
+ uses : actions/setup-go@v5
55
+ with :
56
+ go-version : ${{ env.GO_VERSION }}
57
+ - uses : actions/download-artifact@v4
58
+ with :
59
+ name : testData
60
+ path : ./tests/.gentestdata
36
61
# to create test results report
37
62
- name : Install go-junit-report
38
- run : go install github.com/jstemmer/go-junit-report@latest
63
+ run : go install github.com/jstemmer/go-junit-report/v2@latest
64
+ - name : locate binary
65
+ run : which go-junit-report
66
+ - name : Install jet
67
+ run : go install ./cmd/jet
39
68
- name : Setup Test Report Dir
40
- run : mkdir -p $TEST_RESULTS
69
+ run : mkdir -p ${{ env. TEST_RESULTS }}
41
70
# this will run all tests and exclude test files from code coverage report
42
71
- name : Run Tests
43
72
run : |
44
73
go test -v ./... \
45
74
-covermode=atomic \
46
75
-coverpkg=github.com/go-jet/jet/v2/postgres/...,github.com/go-jet/jet/v2/mysql/...,github.com/go-jet/jet/v2/sqlite/...,github.com/go-jet/jet/v2/qrm/...,github.com/go-jet/jet/v2/generator/...,github.com/go-jet/jet/v2/internal/... \
47
- -coverprofile=cover.out 2>&1 | go-junit-report > $TEST_RESULTS/results.xml
48
-
49
- # run mariaDB and cockroachdb tests. No need to collect coverage, because coverage is already included with mysql and postgres tests
50
- - name : Run MariaDB tests
51
- run : MY_SQL_SOURCE=MariaDB go test -v ./tests/mysql/
52
- - name : Run cockroach DB
53
- run : PG_SOURCE=COCKROACH_DB go test -v ./tests/postgres/
76
+ -coverprofile=cover.out 2>&1 | go-junit-report > ${{ env.TEST_RESULTS }}/results.xml
54
77
- name : Archive code coverage results
55
78
uses : actions/upload-artifact@v4
56
79
with :
57
80
name : code-coverage-report
58
- path : $TEST_RESULTS/results.xml
81
+ path : ${{ env. TEST_RESULTS }} /results.xml
59
82
- name : Store cover.out
60
83
uses : actions/upload-artifact@v4
61
84
with :
65
88
uses : actions/upload-artifact@v4
66
89
with :
67
90
name : test-results
68
- path : /tmp/test-results
91
+ path : /tmp/test-results
92
+ maria_test :
93
+ name : MariaDB Test
94
+ needs : initialize_data
95
+ runs-on : ubuntu-latest
96
+ steps :
97
+ - name : Checkout Repository
98
+ uses : actions/checkout@v4
99
+ with :
100
+ submodules : ' true'
101
+ - name : Set up Go
102
+ uses : actions/setup-go@v5
103
+ with :
104
+ go-version : ${{ env.GO_VERSION }}
105
+ - uses : actions/download-artifact@v4
106
+ with :
107
+ name : testData
108
+ path : ./tests/.gentestdata
109
+ - name : Install jet
110
+ run : go install ./cmd/jet
111
+ - name : Run MariaDB tests
112
+ run : MY_SQL_SOURCE=MariaDB go test -v ./tests/mysql/
113
+ cockroach_test :
114
+ name : Cockroach Test
115
+ needs : initialize_data
116
+ runs-on : ubuntu-latest
117
+ steps :
118
+ - name : Checkout Repository
119
+ uses : actions/checkout@v4
120
+ with :
121
+ submodules : ' true'
122
+ - name : Set up Go
123
+ uses : actions/setup-go@v5
124
+ with :
125
+ go-version : ${{ env.GO_VERSION }}
126
+ - uses : actions/download-artifact@v4
127
+ with :
128
+ name : testData
129
+ path : ./tests/.gentestdata
130
+ - name : Install jet
131
+ run : go install ./cmd/jet
132
+ - name : Init database
133
+ run : |
134
+ cd tests
135
+ go run ./init/init.go -testsuite cockroach
136
+ go run ./init/init.go -testsuite postgres
137
+ - name : Run cockroach DB
138
+ run : PG_SOURCE=COCKROACH_DB go test -v ./tests/postgres/
0 commit comments