Skip to content

Commit

Permalink
Merge pull request #67 from Jackymancs4-Fork/github-ci-coverage
Browse files Browse the repository at this point in the history
Migrated to use go module
  • Loading branch information
darklynx committed Jun 10, 2021
2 parents ad0cc45 + 0534bd7 commit 11ccdc5
Show file tree
Hide file tree
Showing 148 changed files with 143 additions and 40,674 deletions.
74 changes: 74 additions & 0 deletions .github/workflows/test.yml
@@ -0,0 +1,74 @@
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go: ["1.14", "1.15", "1.16"]

# Service containers to run with `container-job`
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres
# Provide the password for postgres
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_HOST: localhost
ports:
- 5432:5432
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
mysql:
image: mysql:5.7
env:
MYSQL_DATABASE: baskets
MYSQL_USER: user
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: password
MYSQL_HOST: localhost
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

steps:
- name: Setup Postgres database
run: PGPASSWORD=postgres psql -h localhost -p 5432 -c "CREATE DATABASE baskets;" -U postgres
- name: Setup Postgres user
run: PGPASSWORD=postgres psql -h localhost -p 5432 -c "CREATE USER rbaskets WITH PASSWORD 'pwd';" -U postgres

- name: Setup Mysql database
run: mysql --password=password -u root -h 127.0.0.1 -P 3306 -e "CREATE DATABASE IF NOT EXISTS baskets ;"
- name: Setup Mysql user
run: mysql --password=password -u root -h 127.0.0.1 -P 3306 -e "CREATE USER 'rbaskets'@'%' IDENTIFIED BY 'pwd' ;"
- name: Setup Mysql permissions
run: mysql --password=password -u root -h 127.0.0.1 -P 3306 -e "GRANT ALL ON baskets.* TO 'rbaskets'@'%' ;"

- uses: actions/setup-go@v1
with:
go-version: ${{ matrix.go }}
- uses: actions/checkout@v2
- run: go test -v -coverprofile=profile.cov

- name: Send coverage
uses: shogo82148/actions-goveralls@v1
with:
path-to-profile: profile.cov
flag-name: Go-${{ matrix.go }}
parallel: true

# notifies that all test jobs are finished.
finish:
needs: test
runs-on: ubuntu-latest
steps:
- uses: shogo82148/actions-goveralls@v1
with:
parallel-finished: true
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -24,3 +24,5 @@ _testmain.go
*.exe
*.test
*.prof

vendor
83 changes: 0 additions & 83 deletions Gopkg.lock

This file was deleted.

51 changes: 0 additions & 51 deletions Gopkg.toml

This file was deleted.

4 changes: 2 additions & 2 deletions baskets.go
Expand Up @@ -152,7 +152,7 @@ func ToRequestData(req *http.Request) *RequestData {
func (req *RequestData) Forward(client *http.Client, config BasketConfig, basket string) (*http.Response, error) {
forwardURL, err := url.ParseRequestURI(config.ForwardURL)
if err != nil {
return nil, fmt.Errorf("Invalid forward URL: %s - %s", config.ForwardURL, err)
return nil, fmt.Errorf("invalid forward URL: %s - %s", config.ForwardURL, err)
}

// expand path
Expand All @@ -171,7 +171,7 @@ func (req *RequestData) Forward(client *http.Client, config BasketConfig, basket

forwardReq, err := http.NewRequest(req.Method, forwardURL.String(), strings.NewReader(req.Body))
if err != nil {
return nil, fmt.Errorf("Failed to create forward request: %s", err)
return nil, fmt.Errorf("failed to create forward request: %s", err)
}

// copy headers
Expand Down
4 changes: 2 additions & 2 deletions baskets_bolt.go
Expand Up @@ -351,13 +351,13 @@ func (bdb *boltDatabase) Create(name string, config BasketConfig) (BasketAuth, e
auth := BasketAuth{}
token, err := GenerateToken()
if err != nil {
return auth, fmt.Errorf("Failed to generate token: %s", err)
return auth, fmt.Errorf("failed to generate token: %s", err)
}

err = bdb.db.Update(func(tx *bolt.Tx) error {
b, cerr := tx.CreateBucket([]byte(name))
if cerr != nil {
return fmt.Errorf("Failed to create basket: %s - %s", name, cerr)
return fmt.Errorf("failed to create basket: %s - %s", name, cerr)
}

// initialize basket bucket (assuming that no issues arose)
Expand Down
2 changes: 1 addition & 1 deletion baskets_mem.go
Expand Up @@ -153,7 +153,7 @@ func (db *memoryDatabase) Create(name string, config BasketConfig) (BasketAuth,
auth := BasketAuth{}
token, err := GenerateToken()
if err != nil {
return auth, fmt.Errorf("Failed to generate token: %s", err)
return auth, fmt.Errorf("failed to generate token: %s", err)
}

db.Lock()
Expand Down
6 changes: 3 additions & 3 deletions baskets_sql.go
Expand Up @@ -336,14 +336,14 @@ func (sdb *sqlDatabase) Create(name string, config BasketConfig) (BasketAuth, er
auth := BasketAuth{}
token, err := GenerateToken()
if err != nil {
return auth, fmt.Errorf("Failed to generate token: %s", err)
return auth, fmt.Errorf("failed to generate token: %s", err)
}

basket, err := sdb.db.Exec(
unifySQL(sdb.dbType, "INSERT INTO rb_baskets (basket_name, token, capacity, forward_url, proxy_response, insecure_tls, expand_path) VALUES($1, $2, $3, $4, $5, $6, $7)"),
name, token, config.Capacity, config.ForwardURL, config.ProxyResponse, config.InsecureTLS, config.ExpandPath)
if err != nil {
return auth, fmt.Errorf("Failed to create basket: %s - %s", name, err)
return auth, fmt.Errorf("failed to create basket: %s - %s", name, err)
}

if _, err := basket.RowsAffected(); err != nil {
Expand Down Expand Up @@ -474,7 +474,7 @@ func NewSQLDatabase(connection string) BasketsDatabase {
return nil
}

var pgParams = regexp.MustCompile("\\$\\d+")
var pgParams = regexp.MustCompile(`\$\d+`)

func unifySQL(dbType string, sql string) string {
switch dbType {
Expand Down
2 changes: 1 addition & 1 deletion baskets_test.go
Expand Up @@ -107,7 +107,7 @@ func TestRequestData_Forward_BrokenURL(t *testing.T) {
r, e := data.Forward(new(http.Client), config, basket)
assert.Nil(t, r, "response is not expected")
assert.NotNil(t, e, "error is expected")
assert.Contains(t, e.Error(), "Invalid forward URL: abc - parse", "unexpected error message")
assert.Contains(t, e.Error(), "invalid forward URL: abc - parse", "unexpected error message")
assert.Contains(t, e.Error(), "invalid URI for request", "unexpected error message")
}

Expand Down
14 changes: 14 additions & 0 deletions go.mod
@@ -0,0 +1,14 @@
module darklynx/request-baskets

go 1.16

require (
github.com/boltdb/bolt v1.3.1
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/go-sql-driver/mysql v1.5.0
github.com/julienschmidt/httprouter v1.3.0
github.com/lib/pq v1.9.0
github.com/stretchr/testify v1.7.0
golang.org/x/sys v0.0.0-20210507161434-a76c4d0a0096 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)
23 changes: 23 additions & 0 deletions go.sum
@@ -0,0 +1,23 @@
github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
github.com/lib/pq v1.9.0 h1:L8nSXQQzAYByakOFMTwpjRoHsMJklur4Gi59b6VivR8=
github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
golang.org/x/sys v0.0.0-20210507161434-a76c4d0a0096 h1:5PbJGn5Sp3GEUjJ61aYbUP6RIo3Z3r2E4Tv9y2z8UHo=
golang.org/x/sys v0.0.0-20210507161434-a76c4d0a0096/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 comments on commit 11ccdc5

Please sign in to comment.