mirror of https://github.com/go-gitea/gitea.git
Retry create issue to cope with duplicate keys (#7898)
* Retry create issue to cope with duplicate keys * Use .SetExpr().Where().Insert()pull/7993/head
parent
541fab196f
commit
5fe2ec264f
@ -1,125 +1,431 @@ |
||||
--- |
||||
kind: pipeline |
||||
name: matrix-1 |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
clone: |
||||
disable: true |
||||
|
||||
workspace: |
||||
base: /go |
||||
path: src/github.com/go-xorm/xorm |
||||
|
||||
steps: |
||||
- name: git |
||||
pull: default |
||||
image: plugins/git:next |
||||
settings: |
||||
depth: 50 |
||||
tags: true |
||||
|
||||
- name: init_postgres |
||||
pull: default |
||||
image: postgres:9.5 |
||||
commands: |
||||
- "until psql -U postgres -d xorm_test -h pgsql \\\n -c \"SELECT 1;\" >/dev/null 2>&1; do sleep 1; done\n" |
||||
- "psql -U postgres -d xorm_test -h pgsql \\\n -c \"create schema xorm;\"\n" |
||||
|
||||
- name: build |
||||
pull: default |
||||
image: golang:1.10 |
||||
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: test-sqlite |
||||
pull: default |
||||
image: golang:1.10 |
||||
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\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic" |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
- name: test-mysql |
||||
pull: default |
||||
image: golang:1.10 |
||||
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.10 |
||||
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.10 |
||||
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.10 |
||||
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.10 |
||||
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" |
||||
- 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 > 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: pgsql |
||||
pull: default |
||||
image: postgres:9.5 |
||||
environment: |
||||
POSTGRES_DB: xorm_test |
||||
POSTGRES_USER: postgres |
||||
when: |
||||
event: |
||||
- push |
||||
- tag |
||||
- pull_request |
||||
|
||||
--- |
||||
kind: pipeline |
||||
name: matrix-2 |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
clone: |
||||
disable: true |
||||
|
||||
workspace: |
||||
base: /go |
||||
path: src/github.com/go-xorm/xorm |
||||
|
||||
steps: |
||||
- name: git |
||||
pull: default |
||||
image: plugins/git:next |
||||
settings: |
||||
depth: 50 |
||||
tags: true |
||||
|
||||
- name: init_postgres |
||||
pull: default |
||||
image: postgres:9.5 |
||||
commands: |
||||
- "until psql -U postgres -d xorm_test -h pgsql \\\n -c \"SELECT 1;\" >/dev/null 2>&1; do sleep 1; done\n" |
||||
- "psql -U postgres -d xorm_test -h pgsql \\\n -c \"create schema xorm;\"\n" |
||||
|
||||
- name: build |
||||
pull: default |
||||
image: golang:1.11 |
||||
commands: |
||||
- go get -t -d -v ./... |
||||
- go get -u xorm.io/core |
||||
- go get -u xorm.io/builder |
||||
- GO111MODULE=off go build -v |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
- name: build-gomod |
||||
pull: default |
||||
image: golang:1.11 |
||||
environment: |
||||
GOPROXY: "https://goproxy.cn" |
||||
commands: |
||||
- GO111MODULE=on go build -v |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
- name: test-sqlite |
||||
pull: default |
||||
image: golang:1.11 |
||||
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\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic" |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
- name: test-mysql |
||||
pull: default |
||||
image: golang:1.11 |
||||
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.11 |
||||
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.11 |
||||
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.11 |
||||
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.11 |
||||
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" |
||||
- 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 > 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: pgsql |
||||
pull: default |
||||
image: postgres:9.5 |
||||
environment: |
||||
POSTGRES_DB: xorm_test |
||||
POSTGRES_USER: postgres |
||||
when: |
||||
event: |
||||
- push |
||||
- tag |
||||
- pull_request |
||||
|
||||
--- |
||||
kind: pipeline |
||||
name: matrix-3 |
||||
|
||||
platform: |
||||
os: linux |
||||
arch: amd64 |
||||
|
||||
clone: |
||||
git: |
||||
image: plugins/git:next |
||||
disable: true |
||||
|
||||
workspace: |
||||
base: /go |
||||
path: src/github.com/go-xorm/xorm |
||||
|
||||
steps: |
||||
- name: git |
||||
pull: default |
||||
image: plugins/git:next |
||||
settings: |
||||
depth: 50 |
||||
tags: true |
||||
|
||||
- name: init_postgres |
||||
pull: default |
||||
image: postgres:9.5 |
||||
commands: |
||||
- "until psql -U postgres -d xorm_test -h pgsql \\\n -c \"SELECT 1;\" >/dev/null 2>&1; do sleep 1; done\n" |
||||
- "psql -U postgres -d xorm_test -h pgsql \\\n -c \"create schema xorm;\"\n" |
||||
|
||||
- name: build |
||||
pull: default |
||||
image: golang:1.12 |
||||
commands: |
||||
- go get -t -d -v ./... |
||||
- go get -u xorm.io/core |
||||
- go get -u xorm.io/builder |
||||
- GO111MODULE=off go build -v |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
- name: build-gomod |
||||
pull: default |
||||
image: golang:1.12 |
||||
environment: |
||||
GOPROXY: "https://goproxy.cn" |
||||
commands: |
||||
- GO111MODULE=on go build -v |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
- name: test-sqlite |
||||
pull: default |
||||
image: golang:1.12 |
||||
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\" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic" |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
- name: test-mysql |
||||
pull: default |
||||
image: golang:1.12 |
||||
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 |
||||
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 |
||||
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 |
||||
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 |
||||
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" |
||||
- 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 > coverage.txt |
||||
when: |
||||
event: |
||||
- push |
||||
- pull_request |
||||
|
||||
services: |
||||
mysql: |
||||
image: mysql:5.7 |
||||
environment: |
||||
- MYSQL_DATABASE=xorm_test |
||||
- MYSQL_ALLOW_EMPTY_PASSWORD=yes |
||||
when: |
||||
event: [ push, tag, pull_request ] |
||||
|
||||
pgsql: |
||||
image: postgres:9.5 |
||||
environment: |
||||
- POSTGRES_USER=postgres |
||||
- POSTGRES_DB=xorm_test |
||||
when: |
||||
event: [ push, tag, pull_request ] |
||||
|
||||
#mssql: |
||||
# image: microsoft/mssql-server-linux:2017-CU11 |
||||
# environment: |
||||
# - ACCEPT_EULA=Y |
||||
# - SA_PASSWORD=yourStrong(!)Password |
||||
# - MSSQL_PID=Developer |
||||
# commands: |
||||
# - echo 'CREATE DATABASE xorm_test' > create.sql |
||||
# - /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P yourStrong(!)Password -i "create.sql" |
||||
|
||||
matrix: |
||||
GO_VERSION: |
||||
- 1.8 |
||||
- 1.9 |
||||
- 1.10 |
||||
- 1.11 |
||||
|
||||
pipeline: |
||||
init_postgres: |
||||
image: postgres:9.5 |
||||
commands: |
||||
# wait for postgres service to become available |
||||
- | |
||||
until psql -U postgres -d xorm_test -h pgsql \ |
||||
-c "SELECT 1;" >/dev/null 2>&1; do sleep 1; done |
||||
# query the database |
||||
- | |
||||
psql -U postgres -d xorm_test -h pgsql \ |
||||
-c "create schema xorm;" |
||||
|
||||
build: |
||||
image: golang:${GO_VERSION} |
||||
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 ] |
||||
|
||||
test-sqlite: |
||||
image: golang:${GO_VERSION} |
||||
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" -cache=true -coverprofile=coverage1-2.txt -covermode=atomic |
||||
when: |
||||
event: [ push, pull_request ] |
||||
|
||||
test-mysql: |
||||
image: golang:${GO_VERSION} |
||||
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 ] |
||||
|
||||
test-mysql-utf8mb4: |
||||
image: golang:${GO_VERSION} |
||||
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 ] |
||||
|
||||
test-mymysql: |
||||
image: golang:${GO_VERSION} |
||||
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 ] |
||||
|
||||
test-postgres: |
||||
image: golang:${GO_VERSION} |
||||
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 ] |
||||
|
||||
test-postgres-schema: |
||||
image: golang:${GO_VERSION} |
||||
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 |
||||
- 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 > coverage.txt |
||||
when: |
||||
event: [ push, pull_request ] |
||||
|
||||
#coverage: |
||||
# image: robertstettner/drone-codecov |
||||
# secrets: [ codecov_token ] |
||||
# files: |
||||
# - coverage.txt |
||||
# when: |
||||
# event: [ push, pull_request ] |
||||
# branch: [ master ] |
||||
- 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: pgsql |
||||
pull: default |
||||
image: postgres:9.5 |
||||
environment: |
||||
POSTGRES_DB: xorm_test |
||||
POSTGRES_USER: postgres |
||||
when: |
||||
event: |
||||
- push |
||||
- tag |
||||
- pull_request |