Skip to content

Commit 19f2c5a

Browse files
committed
feat(workflow): add testing and release
1 parent 3831b54 commit 19f2c5a

File tree

10 files changed

+123
-40
lines changed

10 files changed

+123
-40
lines changed

.github/workflows/release.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Create an incremental tag on Github using SemVer https://semver.org: x.y.z
2+
# A tag is a release version on pkg.go.dev, which is
3+
# notified with the publishing go command.
4+
5+
name: Release
6+
7+
on:
8+
workflow_dispatch:
9+
inputs:
10+
choice:
11+
type: choice
12+
description: "Release types (x.y.patch / x.minor.z / major.y.z)"
13+
options:
14+
- patch
15+
- minor
16+
- major
17+
18+
jobs:
19+
release:
20+
if: ${{ github.ref == 'refs/heads/main' }}
21+
runs-on: ubuntu-latest
22+
name: Tag for release
23+
steps:
24+
- name: Checkout code
25+
uses: actions/checkout@v2
26+
with:
27+
fetch-depth: 0
28+
- name: Last version
29+
id: last-version
30+
run: echo "::set-output name=tag::$(git describe --tags `git rev-list --tags --max-count=1`)"
31+
- name: Bump version
32+
id: bump-version
33+
uses: olegsu/semver-action@v1
34+
with:
35+
version: ${{ steps.last-version.outputs.tag }}
36+
bump: ${{ inputs.choice }}
37+
- name: Create tag as version for the package on pkg.go.dev
38+
run: |
39+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
40+
git config --global user.name "GitHub Actions"
41+
git tag ${{ steps.bump-version.outputs.version }}
42+
git push origin ${{ steps.bump-version.outputs.version }}

.github/workflows/testing.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# This workflow will build a golang project
2+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
3+
4+
name: Test and QA
5+
6+
on:
7+
push:
8+
workflow_dispatch:
9+
10+
jobs:
11+
12+
tests:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Set up Go
17+
uses: actions/setup-go@v4
18+
with:
19+
go-version: '1.18'
20+
- name: Quality Assurance
21+
run: |
22+
go install golang.org/x/tools/cmd/goimports@latest
23+
gofmt -l ./*.go
24+
goimports -e -d ./*.go
25+
- name: golangci-lint
26+
uses: golangci/golangci-lint-action@v6
27+
with:
28+
version: latest
29+
- name: Tests
30+
env:
31+
SQLITE_CONNECTION_STRING: ${{ vars.SQLITE_CONNECTION_STRING }}
32+
SQLITE_USER: ${{ secrets.SQLITE_USER }}
33+
SQLITE_PASSWORD: ${{ secrets.SQLITE_PASSWORD }}
34+
SQLITE_API_KEY: ${{ secrets.SQLITE_API_KEY }}
35+
SQLITE_HOST: ${{ vars.SQLITE_HOST }}
36+
SQLITE_DB: ${{ vars.SQLITE_DB }}
37+
SQLITE_PORT: ${{ vars.SQLITE_PORT }}
38+
run: make test-codecov
39+
- name: Upload coverage reports to Codecov
40+
uses: codecov/[email protected]
41+
with:
42+
token: ${{ secrets.CODECOV_TOKEN }}

Makefile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
GOPATH = $(shell go env GOPATH)
22

3+
setup-ide:
4+
pre-commit install
5+
go install golang.org/x/tools/cmd/goimports@latest
6+
37
# Test SDK
48
test:
5-
cd test; go test -v
9+
cd test; go test -v .
10+
11+
test-codecov:
12+
cd test; go test -v -race -coverprofile=coverage.txt -covermode=atomic .
613

714
# GO SDK
815
sdk: *.go

cli/go.mod

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,20 @@
11
module github.com/sqlitecloud/go-cli
22

3-
go 1.22
4-
5-
toolchain go1.22.3
3+
go 1.18
64

75
require (
86
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
97
github.com/peterh/liner v1.2.2
10-
golang.org/x/term v0.21.0
8+
golang.org/x/term v0.6.0
119
)
1210

1311
require (
1412
github.com/google/go-cmp v0.5.9 // indirect
1513
github.com/kr/pretty v0.3.1 // indirect
1614
github.com/mattn/go-runewidth v0.0.3 // indirect
1715
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
18-
github.com/xo/dburl v0.23.2 // indirect
19-
golang.org/x/sys v0.21.0 // indirect
16+
github.com/xo/dburl v0.13.1 // indirect
17+
golang.org/x/sys v0.7.0 // indirect
2018
)
2119

2220
require github.com/sqlitecloud/sqlitecloud-go v0.0.0

cli/go.sum

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
22
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815 h1:bWDMxwH3px2JBh6AyO7hdCn/PkvCZXii8TGj7sbtEbQ=
33
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
44
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
5-
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
65
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
76
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
87
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
@@ -18,10 +17,10 @@ github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi
1817
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
1918
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
2019
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
21-
github.com/xo/dburl v0.23.2 h1:Fl88cvayrgE56JA/sqhNMLljCW/b7RmG1mMkKMZUFgA=
22-
github.com/xo/dburl v0.23.2/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4=
20+
github.com/xo/dburl v0.13.1 h1:EV+BCdo539sc/mBrny0VxaEGLM0b1U0mJA9RpP80ux0=
21+
github.com/xo/dburl v0.13.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco=
2322
golang.org/x/sys v0.0.0-20211117180635-dee7805ff2e1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
24-
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
25-
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
26-
golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
27-
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
23+
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
24+
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
25+
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
26+
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=

go.mod

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,14 @@
11
module github.com/sqlitecloud/sqlitecloud-go
22

3-
go 1.22
4-
5-
toolchain go1.22.3
3+
go 1.18
64

75
require (
86
github.com/pierrec/lz4 v2.6.1+incompatible
9-
github.com/xo/dburl v0.23.2
10-
golang.org/x/term v0.21.0
7+
github.com/xo/dburl v0.13.1
8+
golang.org/x/term v0.6.0
119
)
1210

1311
require (
1412
github.com/frankban/quicktest v1.14.3 // indirect
15-
golang.org/x/sys v0.21.0 // indirect
13+
golang.org/x/sys v0.7.0 // indirect
1614
)

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9F
1414
github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
1515
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
1616
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
17-
github.com/xo/dburl v0.23.2 h1:Fl88cvayrgE56JA/sqhNMLljCW/b7RmG1mMkKMZUFgA=
18-
github.com/xo/dburl v0.23.2/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4=
19-
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
20-
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
21-
golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
22-
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
17+
github.com/xo/dburl v0.13.1 h1:EV+BCdo539sc/mBrny0VxaEGLM0b1U0mJA9RpP80ux0=
18+
github.com/xo/dburl v0.13.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco=
19+
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
20+
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
21+
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
22+
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
2323
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
2424
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
2525
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

test/compress_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func TestCompress(t *testing.T) {
3434
apikey, _ := os.LookupEnv("SQLITE_API_KEY")
3535
connectionString += "?apikey=" + apikey
3636

37-
url, err := url.Parse(connectionString)
37+
url, _ := url.Parse(connectionString)
3838
values := url.Query()
3939
values.Add("compress", sqlitecloud.CompressModeLZ4)
4040
url.RawQuery = values.Encode()

test/go.mod

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
module github.com/sqlitecloud/sqlitecloud-go/test
22

3-
go 1.22
4-
5-
toolchain go1.22.3
3+
go 1.18
64

75
require (
86
github.com/joho/godotenv v1.5.1
@@ -16,9 +14,9 @@ require (
1614
github.com/kr/pretty v0.3.1 // indirect
1715
github.com/pierrec/lz4 v2.6.1+incompatible // indirect
1816
github.com/pmezard/go-difflib v1.0.0 // indirect
19-
github.com/xo/dburl v0.23.2 // indirect
20-
golang.org/x/sys v0.21.0 // indirect
21-
golang.org/x/term v0.21.0 // indirect
17+
github.com/xo/dburl v0.13.1 // indirect
18+
golang.org/x/sys v0.7.0 // indirect
19+
golang.org/x/term v0.6.0 // indirect
2220
gopkg.in/yaml.v3 v3.0.1 // indirect
2321
)
2422

test/go.sum

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
22
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
33
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
44
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
5-
github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps=
65
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
76
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
87
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
@@ -20,12 +19,12 @@ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZV
2019
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
2120
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
2221
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
23-
github.com/xo/dburl v0.23.2 h1:Fl88cvayrgE56JA/sqhNMLljCW/b7RmG1mMkKMZUFgA=
24-
github.com/xo/dburl v0.23.2/go.mod h1:uazlaAQxj4gkshhfuuYyvwCBouOmNnG2aDxTCFZpmL4=
25-
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
26-
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
27-
golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA=
28-
golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0=
22+
github.com/xo/dburl v0.13.1 h1:EV+BCdo539sc/mBrny0VxaEGLM0b1U0mJA9RpP80ux0=
23+
github.com/xo/dburl v0.13.1/go.mod h1:B7/G9FGungw6ighV8xJNwWYQPMfn3gsi2sn5SE8Bzco=
24+
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
25+
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
26+
golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
27+
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
2928
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
3029
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3130
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=

0 commit comments

Comments
 (0)