From 6fca4ec9fe08fd508549b393af36b326db5dc81d Mon Sep 17 00:00:00 2001 From: Nikola Kovacs Date: Sat, 21 May 2016 20:05:31 +0200 Subject: [PATCH] Add wercker.yml with postgres and mysql tests --- main_test.go | 12 ++++++++++-- wercker.yml | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 wercker.yml diff --git a/main_test.go b/main_test.go index 8ac015c8..4a5df93f 100644 --- a/main_test.go +++ b/main_test.go @@ -49,10 +49,18 @@ func OpenTestConnection() (db *gorm.DB, err error) { // CREATE DATABASE gorm; // GRANT ALL ON gorm.* TO 'gorm'@'localhost'; fmt.Println("testing mysql...") - db, err = gorm.Open("mysql", "gorm:gorm@/gorm?charset=utf8&parseTime=True") + dbhost := os.Getenv("GORM_DBADDRESS") + if dbhost != "" { + dbhost = fmt.Sprintf("tcp(%v)", dbhost) + } + db, err = gorm.Open("mysql", fmt.Sprintf("gorm:gorm@%v/gorm?charset=utf8&parseTime=True", dbhost)) case "postgres": fmt.Println("testing postgres...") - db, err = gorm.Open("postgres", "user=gorm DB.name=gorm sslmode=disable") + dbhost := os.Getenv("GORM_DBHOST") + if dbhost != "" { + dbhost = fmt.Sprintf("host=%v ", dbhost) + } + db, err = gorm.Open("postgres", fmt.Sprintf("%vuser=gorm password=gorm DB.name=gorm sslmode=disable", dbhost)) case "foundation": fmt.Println("testing foundation...") db, err = gorm.Open("foundation", "dbname=gorm port=15432 sslmode=disable") diff --git a/wercker.yml b/wercker.yml new file mode 100644 index 00000000..ff6fb17c --- /dev/null +++ b/wercker.yml @@ -0,0 +1,53 @@ +# use the default golang container from Docker Hub +box: golang + +services: + - id: mariadb:10.0 + env: + MYSQL_DATABASE: gorm + MYSQL_USER: gorm + MYSQL_PASSWORD: gorm + MYSQL_RANDOM_ROOT_PASSWORD: "yes" + - id: postgres + env: + POSTGRES_USER: gorm + POSTGRES_PASSWORD: gorm + POSTGRES_DB: gorm + +# The steps that will be executed in the build pipeline +build: + # The steps that will be executed on build + steps: + # Sets the go workspace and places you package + # at the right place in the workspace tree + - setup-go-workspace + + # Gets the dependencies + - script: + name: go get + code: | + cd $WERCKER_SOURCE_DIR + go version + go get -t ./... + + # Build the project + - script: + name: go build + code: | + go build ./... + + # Test the project + - script: + name: test sqlite + code: | + go test ./... + + - script: + name: test mysql + code: | + GORM_DIALECT=mysql GORM_DBADDRESS=mariadb:3306 go test ./... + + - script: + name: test postgres + code: | + GORM_DIALECT=postgres GORM_DBHOST=postgres go test ./...