Improve ci tests (#1477)

This commit is contained in:
Lunny Xiao 2019-11-13 05:54:10 +00:00
parent 29b162a3ab
commit a63a26eb20
5 changed files with 117 additions and 602 deletions

View File

@ -1,11 +1,6 @@
--- ---
kind: pipeline kind: pipeline
name: matrix-1 name: go1.10-test
platform:
os: linux
arch: amd64
workspace: workspace:
base: /go base: /go
path: src/gitea.com/xorm/xorm path: src/gitea.com/xorm/xorm
@ -15,9 +10,7 @@ steps:
pull: default pull: default
image: golang:1.10 image: golang:1.10
commands: commands:
- go get -t -d -v ./... - go get -t -d -v
- go get -u xorm.io/core
- go get -u xorm.io/builder
- go build -v - go build -v
when: when:
event: event:
@ -27,8 +20,9 @@ steps:
- name: test-sqlite - name: test-sqlite
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- build
commands: commands:
- go get -u github.com/wadey/gocovmerge
- "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -coverprofile=coverage1-1.txt -covermode=atomic" - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -coverprofile=coverage1-1.txt -covermode=atomic"
- "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic" - "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic"
when: when:
@ -39,6 +33,8 @@ steps:
- name: test-mysql - name: test-mysql
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- build
commands: commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic"
@ -50,6 +46,8 @@ steps:
- name: test-mysql-utf8mb4 - name: test-mysql-utf8mb4
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- test-mysql
commands: commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic"
@ -61,6 +59,8 @@ steps:
- name: test-mymysql - name: test-mymysql
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- test-mysql-utf8mb4
commands: commands:
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic" - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic"
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic" - "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic"
@ -72,6 +72,8 @@ steps:
- name: test-postgres - name: test-postgres
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- build
commands: commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic" - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic" - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic"
@ -83,6 +85,8 @@ steps:
- name: test-postgres-schema - name: test-postgres-schema
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- build
commands: commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic" - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic" - "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic"
@ -94,6 +98,8 @@ steps:
- name: test-mssql - name: test-mssql
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- build
commands: commands:
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic" - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic"
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic" - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic"
@ -105,10 +111,30 @@ steps:
- name: test-tidb - name: test-tidb
pull: default pull: default
image: golang:1.10 image: golang:1.10
depends_on:
- build
commands: commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
- gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt when:
event:
- push
- pull_request
- name: test-end
pull: default
image: golang:1.10
depends_on:
- test-sqlite
- test-mysql
- test-mysql-utf8mb4
- test-mymysql
- test-postgres
- test-postgres-schema
- test-mssql
- test-tidb
commands:
- echo "go1.10 build end"
when: when:
event: event:
- push - push
@ -127,15 +153,6 @@ services:
- tag - tag
- pull_request - pull_request
- name: tidb
pull: default
image: pingcap/tidb:v3.0.3
when:
event:
- push
- tag
- pull_request
- name: pgsql - name: pgsql
pull: default pull: default
image: postgres:9.5 image: postgres:9.5
@ -161,42 +178,28 @@ services:
- tag - tag
- pull_request - pull_request
--- - name: tidb
kind: pipeline
name: matrix-2
platform:
os: linux
arch: amd64
workspace:
base: /go
path: src/gitea.com/xorm/xorm
steps:
- name: build
pull: default pull: default
image: golang:1.11 image: pingcap/tidb:v3.0.3
environment:
GO111MODULE: "off"
commands:
- go get -t -d -v ./...
- go get -u xorm.io/core
- go get -u xorm.io/builder
- go build -v
when: when:
event: event:
- push - push
- tag
- pull_request - pull_request
- name: build-gomod ---
kind: pipeline
name: go1.13-test
steps:
- name: build
pull: default pull: default
image: golang:1.11 image: golang:1.13
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
commands: commands:
- go build -v - go build -v
- go vet
when: when:
event: event:
- push - push
@ -204,7 +207,7 @@ steps:
- name: test-sqlite - name: test-sqlite
pull: default pull: default
image: golang:1.11 image: golang:1.13
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
@ -218,7 +221,7 @@ steps:
- name: test-mysql - name: test-mysql
pull: default pull: default
image: golang:1.11 image: golang:1.13
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
@ -232,7 +235,9 @@ steps:
- name: test-mysql-utf8mb4 - name: test-mysql-utf8mb4
pull: default pull: default
image: golang:1.11 image: golang:1.13
depends_on:
- test-mysql
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
@ -246,7 +251,9 @@ steps:
- name: test-mymysql - name: test-mymysql
pull: default pull: default
image: golang:1.11 image: golang:1.13
depends_on:
- test-mysql-utf8mb4
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
@ -260,7 +267,7 @@ steps:
- name: test-postgres - name: test-postgres
pull: default pull: default
image: golang:1.11 image: golang:1.13
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
@ -274,7 +281,7 @@ steps:
- name: test-postgres-schema - name: test-postgres-schema
pull: default pull: default
image: golang:1.11 image: golang:1.13
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
@ -288,14 +295,13 @@ steps:
- name: test-mssql - name: test-mssql
pull: default pull: default
image: golang:1.11 image: golang:1.13
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
commands: commands:
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic" - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic"
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic" - "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic"
when: when:
event: event:
- push - push
@ -303,13 +309,35 @@ steps:
- name: test-tidb - name: test-tidb
pull: default pull: default
image: golang:1.11 image: golang:1.13
environment: environment:
GO111MODULE: "on" GO111MODULE: "on"
GOPROXY: "https://goproxy.cn" GOPROXY: "https://goproxy.cn"
commands: commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic" - "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: merge_coverage
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
depends_on:
- build
- test-sqlite
- test-mysql
- test-mysql-utf8mb4
- test-mymysql
- test-postgres
- test-postgres-schema
- test-mssql
- test-tidb
commands:
- go get github.com/wadey/gocovmerge - go get github.com/wadey/gocovmerge
- gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt - gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt
when: when:
@ -318,6 +346,7 @@ steps:
- pull_request - pull_request
services: services:
- name: mysql - name: mysql
pull: default pull: default
image: mysql:5.7 image: mysql:5.7
@ -330,15 +359,6 @@ services:
- tag - tag
- pull_request - pull_request
- name: tidb
pull: default
image: pingcap/tidb:v3.0.3
when:
event:
- push
- tag
- pull_request
- name: pgsql - name: pgsql
pull: default pull: default
image: postgres:9.5 image: postgres:9.5
@ -364,175 +384,6 @@ services:
- tag - tag
- pull_request - pull_request
---
kind: pipeline
name: matrix-3
platform:
os: linux
arch: amd64
workspace:
base: /go
path: src/gitea.com/xorm/xorm
steps:
- name: build
pull: default
image: golang:1.12
environment:
GO111MODULE: "off"
commands:
- go get -t -d -v ./...
- go get -u xorm.io/core
- go get -u xorm.io/builder
- go build -v
when:
event:
- push
- pull_request
- name: build-gomod
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- go build -v
when:
event:
- push
- pull_request
- name: test-sqlite
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -coverprofile=coverage1-1.txt -covermode=atomic"
- "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mysql
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mysql-utf8mb4
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mymysql
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic"
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-postgres
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-postgres-schema
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mssql
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic"
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-tidb
pull: default
image: golang:1.12
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
- go get github.com/wadey/gocovmerge
- gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt
when:
event:
- push
- pull_request
services:
- name: mysql
pull: default
image: mysql:5.7
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: xorm_test
when:
event:
- push
- tag
- pull_request
- name: tidb - name: tidb
pull: default pull: default
image: pingcap/tidb:v3.0.3 image: pingcap/tidb:v3.0.3
@ -541,231 +392,3 @@ services:
- push - push
- tag - tag
- pull_request - pull_request
- name: pgsql
pull: default
image: postgres:9.5
environment:
POSTGRES_DB: xorm_test
POSTGRES_USER: postgres
when:
event:
- push
- tag
- pull_request
- name: mssql
pull: default
image: microsoft/mssql-server-linux:latest
environment:
ACCEPT_EULA: Y
SA_PASSWORD: yourStrong(!)Password
MSSQL_PID: Developer
when:
event:
- push
- tag
- pull_request
---
kind: pipeline
name: go1.13
platform:
os: linux
arch: amd64
workspace:
base: /go
path: src/gitea.com/xorm/xorm
steps:
- name: build
pull: default
image: golang:1.13
environment:
GO111MODULE: "off"
commands:
- go get -t -d -v ./...
- go get -u xorm.io/core
- go get -u xorm.io/builder
- go build -v
when:
event:
- push
- pull_request
- name: build-gomod
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- go build -v
when:
event:
- push
- pull_request
- name: test-sqlite
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -coverprofile=coverage1-1.txt -covermode=atomic"
- "go test -v -race -db=\"sqlite3\" -conn_str=\"./test.db\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mysql
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -coverprofile=coverage2-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test\" -cache=true -coverprofile=coverage2-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mysql-utf8mb4
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -coverprofile=coverage2.1-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(mysql)/xorm_test?charset=utf8mb4\" -cache=true -coverprofile=coverage2.1-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mymysql
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -coverprofile=coverage3-1.txt -covermode=atomic"
- "go test -v -race -db=\"mymysql\" -conn_str=\"tcp:mysql:3306*xorm_test/root/\" -cache=true -coverprofile=coverage3-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-postgres
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -coverprofile=coverage4-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -cache=true -coverprofile=coverage4-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-postgres-schema
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -coverprofile=coverage5-1.txt -covermode=atomic"
- "go test -v -race -db=\"postgres\" -conn_str=\"postgres://postgres:@pgsql/xorm_test?sslmode=disable\" -schema=xorm -cache=true -coverprofile=coverage5-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-mssql
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -coverprofile=coverage6-1.txt -covermode=atomic"
- "go test -v -race -db=\"mssql\" -conn_str=\"server=mssql;user id=sa;password=yourStrong(!)Password;database=xorm_test\" -cache=true -coverprofile=coverage6-2.txt -covermode=atomic"
when:
event:
- push
- pull_request
- name: test-tidb
pull: default
image: golang:1.13
environment:
GO111MODULE: "on"
GOPROXY: "https://goproxy.cn"
commands:
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -coverprofile=coverage7-1.txt -covermode=atomic"
- "go test -v -race -db=\"mysql\" -conn_str=\"root:@tcp(tidb:4000)/xorm_test\" -ignore_select_update=true -cache=true -coverprofile=coverage7-2.txt -covermode=atomic"
- go get github.com/wadey/gocovmerge
- gocovmerge coverage1-1.txt coverage1-2.txt coverage2-1.txt coverage2-2.txt coverage2.1-1.txt coverage2.1-2.txt coverage3-1.txt coverage3-2.txt coverage4-1.txt coverage4-2.txt coverage5-1.txt coverage5-2.txt coverage6-1.txt coverage6-2.txt coverage7-1.txt coverage7-2.txt > coverage.txt
when:
event:
- push
- pull_request
services:
- name: mysql
pull: default
image: mysql:5.7
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_DATABASE: xorm_test
when:
event:
- push
- tag
- pull_request
- name: tidb
pull: default
image: pingcap/tidb:v3.0.3
when:
event:
- push
- tag
- pull_request
- name: pgsql
pull: default
image: postgres:9.5
environment:
POSTGRES_DB: xorm_test
POSTGRES_USER: postgres
when:
event:
- push
- tag
- pull_request
- name: mssql
pull: default
image: microsoft/mssql-server-linux:latest
environment:
ACCEPT_EULA: Y
SA_PASSWORD: yourStrong(!)Password
MSSQL_PID: Developer
when:
event:
- push
- tag
- pull_request

View File

@ -531,9 +531,7 @@ func TestCreatedJsonTime(t *testing.T) {
var dis = make([]MyJsonTime, 0) var dis = make([]MyJsonTime, 0)
err = testEngine.Find(&dis) err = testEngine.Find(&dis)
if err != nil { assert.NoError(t, err)
t.Fatal(err)
}
} }
func TestInsertMulti2(t *testing.T) { func TestInsertMulti2(t *testing.T) {
@ -552,12 +550,7 @@ func TestInsertMulti2(t *testing.T) {
t.Error(err) t.Error(err)
panic(err) panic(err)
} }
if cnt != int64(len(users)) { assert.EqualValues(t, len(users), cnt)
err = errors.New("insert not returned 1")
t.Error(err)
panic(err)
return
}
users2 := []*Userinfo{ users2 := []*Userinfo{
&Userinfo{Username: "1xlw", Departname: "dev", Alias: "lunny2", Created: time.Now()}, &Userinfo{Username: "1xlw", Departname: "dev", Alias: "lunny2", Created: time.Now()},
@ -567,16 +560,8 @@ func TestInsertMulti2(t *testing.T) {
} }
cnt, err = testEngine.Insert(&users2) cnt, err = testEngine.Insert(&users2)
if err != nil { assert.NoError(t, err)
t.Error(err) assert.EqualValues(t, len(users2), cnt)
panic(err)
}
if cnt != int64(len(users2)) {
err = errors.New(fmt.Sprintf("insert not returned %v", len(users2)))
t.Error(err)
panic(err)
}
} }
func TestInsertTwoTable(t *testing.T) { func TestInsertTwoTable(t *testing.T) {

View File

@ -274,7 +274,7 @@ func TestCharst(t *testing.T) {
func TestSync2_1(t *testing.T) { func TestSync2_1(t *testing.T) {
type WxTest struct { type WxTest struct {
Id int `xorm:"not null pk autoincr INT(64)` Id int `xorm:"not null pk autoincr INT(64)"`
Passport_user_type int16 `xorm:"null int"` Passport_user_type int16 `xorm:"null int"`
Id_delete int8 `xorm:"null int default 1"` Id_delete int8 `xorm:"null int default 1"`
} }

View File

@ -299,47 +299,20 @@ func TestUpdate1(t *testing.T) {
// update by id // update by id
user := Userinfo{Username: "xxx", Height: 1.2} user := Userinfo{Username: "xxx", Height: 1.2}
cnt, err := testEngine.ID(ori.Uid).Update(&user) cnt, err := testEngine.ID(ori.Uid).Update(&user)
if err != nil { assert.NoError(t, err)
t.Error(err) assert.EqualValues(t, 1, cnt)
panic(err)
}
if cnt != 1 {
err = errors.New("update not returned 1")
t.Error(err)
panic(err)
return
}
condi := Condi{"username": "zzz", "departname": ""} condi := Condi{"username": "zzz", "departname": ""}
cnt, err = testEngine.Table(&user).ID(ori.Uid).Update(&condi) cnt, err = testEngine.Table(&user).ID(ori.Uid).Update(&condi)
if err != nil { assert.NoError(t, err)
t.Error(err) assert.EqualValues(t, 1, cnt)
panic(err)
}
if cnt != 1 {
err = errors.New("update not returned 1")
t.Error(err)
panic(err)
return
}
cnt, err = testEngine.Update(&Userinfo{Username: "yyy"}, &user) cnt, err = testEngine.Update(&Userinfo{Username: "yyy"}, &user)
if err != nil { assert.NoError(t, err)
t.Error(err)
panic(err)
}
total, err := testEngine.Count(&user)
if err != nil {
t.Error(err)
panic(err)
}
if cnt != total { total, err := testEngine.Count(&user)
err = errors.New("insert not returned 1") assert.NoError(t, err)
t.Error(err) assert.EqualValues(t, cnt, total)
panic(err)
return
}
// nullable update // nullable update
{ {
@ -446,17 +419,8 @@ func TestUpdate1(t *testing.T) {
} }
cnt, err = testEngine.ID(a.Id).Update(&Article{Name: "6"}) cnt, err = testEngine.ID(a.Id).Update(&Article{Name: "6"})
if err != nil { assert.NoError(t, err)
t.Error(err) assert.EqualValues(t, 1, cnt)
panic(err)
}
if cnt != 1 {
err = errors.New(fmt.Sprintf("insert not returned 1 but %d", cnt))
t.Error(err)
panic(err)
return
}
var s = "test" var s = "test"
@ -474,20 +438,8 @@ func TestUpdate1(t *testing.T) {
col3 := &UpdateAllCols{} col3 := &UpdateAllCols{}
has, err = testEngine.ID(col2.Id).Get(col3) has, err = testEngine.ID(col2.Id).Get(col3)
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, has)
if !has { assert.EqualValues(t, *col2, *col3)
err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id))
t.Error(err)
panic(err)
return
}
if *col2 != *col3 {
err = errors.New(fmt.Sprintf("col2 should eq col3"))
t.Error(err)
panic(err)
return
}
{ {
@ -515,24 +467,9 @@ func TestUpdate1(t *testing.T) {
col3 := &UpdateMustCols{} col3 := &UpdateMustCols{}
has, err := testEngine.ID(col2.Id).Get(col3) has, err := testEngine.ID(col2.Id).Get(col3)
if err != nil { assert.NoError(t, err)
t.Error(err) assert.True(t, has)
panic(err) assert.EqualValues(t, *col2, *col3)
}
if !has {
err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id))
t.Error(err)
panic(err)
return
}
if *col2 != *col3 {
err = errors.New(fmt.Sprintf("col2 should eq col3"))
t.Error(err)
panic(err)
return
}
} }
} }
@ -821,13 +758,7 @@ func TestUpdateSameMapper(t *testing.T) {
cnt, err = testEngine.ID(a.Id).Update(&Article{Name: "6"}) cnt, err = testEngine.ID(a.Id).Update(&Article{Name: "6"})
assert.NoError(t, err) assert.NoError(t, err)
assert.EqualValues(t, 1, cnt)
if cnt != 1 {
err = errors.New(fmt.Sprintf("insert not returned 1 but %d", cnt))
t.Error(err)
panic(err)
return
}
col1 := &UpdateAllCols{} col1 := &UpdateAllCols{}
err = testEngine.Sync(col1) err = testEngine.Sync(col1)
@ -843,20 +774,8 @@ func TestUpdateSameMapper(t *testing.T) {
col3 := &UpdateAllCols{} col3 := &UpdateAllCols{}
has, err = testEngine.ID(col2.Id).Get(col3) has, err = testEngine.ID(col2.Id).Get(col3)
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, has)
if !has { assert.EqualValues(t, *col2, *col3)
err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id))
t.Error(err)
panic(err)
return
}
if *col2 != *col3 {
err = errors.New(fmt.Sprintf("col2 should eq col3"))
t.Error(err)
panic(err)
return
}
{ {
col1 := &UpdateMustCols{} col1 := &UpdateMustCols{}
@ -875,20 +794,8 @@ func TestUpdateSameMapper(t *testing.T) {
col3 := &UpdateMustCols{} col3 := &UpdateMustCols{}
has, err := testEngine.ID(col2.Id).Get(col3) has, err := testEngine.ID(col2.Id).Get(col3)
assert.NoError(t, err) assert.NoError(t, err)
assert.True(t, has)
if !has { assert.EqualValues(t, *col2, *col3)
err = errors.New(fmt.Sprintf("cannot get id %d", col2.Id))
t.Error(err)
panic(err)
return
}
if *col2 != *col3 {
err = errors.New(fmt.Sprintf("col2 should eq col3"))
t.Error(err)
panic(err)
return
}
} }
{ {

View File

@ -97,10 +97,10 @@ func TestNullStructInsert(t *testing.T) {
if true { if true {
item := NullType{ item := NullType{
Name: sql.NullString{"haolei", true}, Name: sql.NullString{String: "haolei", Valid: true},
Age: sql.NullInt64{34, true}, Age: sql.NullInt64{Int64: 34, Valid: true},
Height: sql.NullFloat64{1.72, true}, Height: sql.NullFloat64{Float64: 1.72, Valid: true},
IsMan: sql.NullBool{true, true}, IsMan: sql.NullBool{Bool: true, Valid: true},
} }
_, err := testEngine.Insert(&item) _, err := testEngine.Insert(&item)
if err != nil { if err != nil {
@ -120,10 +120,10 @@ func TestNullStructInsert(t *testing.T) {
for i := 0; i < 5; i++ { for i := 0; i < 5; i++ {
item := NullType{ item := NullType{
Name: sql.NullString{"haolei_" + fmt.Sprint(i+1), true}, Name: sql.NullString{String: "haolei_" + fmt.Sprint(i+1), Valid: true},
Age: sql.NullInt64{30 + int64(i), true}, Age: sql.NullInt64{Int64: 30 + int64(i), Valid: true},
Height: sql.NullFloat64{1.5 + 1.1*float64(i), true}, Height: sql.NullFloat64{Float64: 1.5 + 1.1*float64(i), Valid: true},
IsMan: sql.NullBool{true, true}, IsMan: sql.NullBool{Bool: true, Valid: true},
CustomStruct: CustomStruct{i, i + 1, i + 2}, CustomStruct: CustomStruct{i, i + 1, i + 2},
} }
@ -173,8 +173,8 @@ func TestNullStructUpdate(t *testing.T) {
if true { // 测试可插入NULL if true { // 测试可插入NULL
item := new(NullType) item := new(NullType)
item.Age = sql.NullInt64{23, true} item.Age = sql.NullInt64{Int64: 23, Valid: true}
item.Height = sql.NullFloat64{0, false} // update to NULL item.Height = sql.NullFloat64{Float64: 0, Valid: false} // update to NULL
affected, err := testEngine.ID(2).Cols("age", "height", "is_man").Update(item) affected, err := testEngine.ID(2).Cols("age", "height", "is_man").Update(item)
if err != nil { if err != nil {
@ -190,7 +190,7 @@ func TestNullStructUpdate(t *testing.T) {
if true { // 测试In update if true { // 测试In update
item := new(NullType) item := new(NullType)
item.Age = sql.NullInt64{23, true} item.Age = sql.NullInt64{Int64: 23, Valid: true}
affected, err := testEngine.In("id", 3, 4).Cols("age", "height", "is_man").Update(item) affected, err := testEngine.In("id", 3, 4).Cols("age", "height", "is_man").Update(item)
if err != nil { if err != nil {
t.Error(err) t.Error(err)
@ -205,9 +205,9 @@ func TestNullStructUpdate(t *testing.T) {
if true { // 测试where if true { // 测试where
item := new(NullType) item := new(NullType)
item.Name = sql.NullString{"nullname", true} item.Name = sql.NullString{String: "nullname", Valid: true}
item.IsMan = sql.NullBool{true, true} item.IsMan = sql.NullBool{Bool: true, Valid: true}
item.Age = sql.NullInt64{34, true} item.Age = sql.NullInt64{Int64: 34, Valid: true}
_, err := testEngine.Where("age > ?", 34).Update(item) _, err := testEngine.Where("age > ?", 34).Update(item)
if err != nil { if err != nil {
@ -218,9 +218,9 @@ func TestNullStructUpdate(t *testing.T) {
if true { // 修改全部时,插入空值 if true { // 修改全部时,插入空值
item := &NullType{ item := &NullType{
Name: sql.NullString{"winxxp", true}, Name: sql.NullString{String: "winxxp", Valid: true},
Age: sql.NullInt64{30, true}, Age: sql.NullInt64{Int64: 30, Valid: true},
Height: sql.NullFloat64{1.72, true}, Height: sql.NullFloat64{Float64: 1.72, Valid: true},
// IsMan: sql.NullBool{true, true}, // IsMan: sql.NullBool{true, true},
} }