# Golang CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-go/ for more details version: 2 jobs: build: docker: # specify the version - image: circleci/golang:1.11 - image: circleci/postgres:10.6-alpine environment: # environment variables for primary container POSTGRES_USER: jet POSTGRES_PASSWORD: jet POSTGRES_DB: jetdb - image: circleci/php:7.1-apache-node-browsers # The primary container where steps are run - image: circleci/mysql:8.0.4 environment: MYSQL_ROOT_PASSWORD: rootpw MYSQL_DATABASE: test_db MYSQL_USER: user MYSQL_PASSWORD: passw0rd working_directory: /go/src/github.com/go-jet/jet environment: # environment variables for the build itself TEST_RESULTS: /tmp/test-results # path to where test results will be saved steps: - checkout # specify any bash command here prefixed with `run: ` - run: name: Install dependencies command: | go get github.com/google/uuid go get github.com/lib/pq go get github.com/go-sql-driver/mysql go get github.com/pkg/profile go get gotest.tools/assert go get github.com/davecgh/go-spew/spew go get github.com/jstemmer/go-junit-report go install github.com/go-jet/jet/cmd/jet - run: name: Waiting for Postgres to be ready command: | for i in `seq 1 10`; do nc -z localhost 5432 && echo Success && exit 0 echo -n . sleep 1 done echo Failed waiting for Postgres && exit 1 - run: name: Waiting for MySQL to be ready command: | for i in `seq 1 10`; do nc -z 127.0.0.1 3306 && echo Success && exit 0 echo -n . sleep 1 done echo Failed waiting for MySQL && exit 1 - run: name: Install MySQL CLI; command: | sudo apt-get install default-mysql-client - run: name: Init Postgres and MySQL database command: | cd tests go run ./init/init.go cd .. - run: mkdir -p $TEST_RESULTS - run: go test -v ./... -coverpkg=github.com/go-jet/jet/postgres/...,github.com/go-jet/mysql/...,github.com/go-jet/jet/execution/...,github.com/go-jet/jet/generator/...,github.com/go-jet/jet/internal/... -coverprofile=cover.out 2>&1 | go-junit-report > $TEST_RESULTS/results.xml - run: name: Upload code coverage command: bash <(curl -s https://codecov.io/bash) - store_artifacts: # Upload test summary for display in Artifacts: https://circleci.com/docs/2.0/artifacts/ path: /tmp/test-results destination: raw-test-output - store_test_results: # Upload test results for display in Test Summary: https://circleci.com/docs/2.0/collect-test-data/ path: /tmp/test-results