workspace: base: /go path: src/github.com/go-xorm/xorm clone: git: image: plugins/git:next depth: 50 tags: true 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 ]