У меня есть файл .gitlab-ci.yml, который позже использует изображение golang и изображение MySql в качестве службы ...
gilab-ci.yml ...
stages:
- test
- build
- art
image: golang:1.9.2
variables:
BIN_NAME: alltools
ARTIFACTS_DIR: artifacts
GO_PROJECT: alltools
GOPATH: /go
before_script:
- mkdir -p ${GOPATH}/src/${GO_PROJECT}
- mkdir -p ${CI_PROJECT_DIR}/${ARTIFACTS_DIR}
- go get -u github.com/golang/dep/cmd/dep
- go get -u github.com/fatih/color
- go get -u github.com/go-sql-driver/mysql
- cp -r ${CI_PROJECT_DIR}/* ${GOPATH}/src/${GO_PROJECT}/
- cd ${GOPATH}/src/${GO_PROJECT}
- env="root:rootroot@tcp(localhost:3306)/TESTDB"
test:
stage: test
services:
- mysql:5.7
variables:
# Configure mysql environment variables (https://hub.docker.com/_/mysql/)
# MYSQL_DATABASE: mydb
MYSQL_ROOT_PASSWORD: rootroot
script:
# Run all tests
go test ./...
build:
stage: build
script:
# Compile and name the binary as `hello`
- go build -o alltools
- pwd
- ls -l alltools
# Execute the binary
- ./alltools
# Move to gitlab build directory
- mv ./alltools ${CI_PROJECT_DIR}
artifacts:
paths:
- ./alltools
У меня также есть тест в моем приложении go, который отлично работает на моей машине dev. Как вы увидите выше, я установил и окружаю varable в файле gitlab-ci.yml (это соответствует моей среде dev.
- env = "root: rootroot @ tcp (localhost: 3306) / TESTDB"
Но когда я запускаю свой конвейер, я получаю следующую ошибку ...
$ env = "root: rootroot @ tcp (localhost: 3306) / TESTDB" $ go test. / ...?
alltools [нет файлов теста]? Alltools / BBData [нет тестаfiles] dial tcp 127.0.0.1:3306: getsockopt: соединение отклонено
Нужно ли изменять переменную среды в файле gitlab-ci.yml?