image: golang:alpine variables: GO111MODULE: "on" CGO_ENABLED: "0" COV: "/tmp/cov_results" before_script: - apk add git stages: - test build_test: stage: test script: - go build ./... unit_test: stage: test script: - go test -v -coverprofile $COV ./... - go tool cover -func $COV | grep -F 'total:' | sed -E 's|total:\s+\(.*?\)\s+([0-9]+\.[0-9]+%)|TEST_COVERAGE=\1|' integration_test: stage: test only: variables: - $BOT_TOKEN - $VOICE_ID # for voice tests - $CHANNEL_ID # for API integration tests script: # go get first, so it doesn't count towards the timeout. - go get ./... # Timeout test after 120 seconds (2 minutes) - timeout 120 go test -tags integration -v -coverprofile $COV ./... - go tool cover -func $COV | grep -F 'total:' | sed -E 's|total:\s+\(.*?\)\s+([0-9]+\.[0-9]+%)|TEST_COVERAGE=\1|'