![](/img/trans.png)
[英]how to connect golang in gitlab to mongodb container in gitlab-ci
[英]no Go files in ... when on making golang deb in gitlab-ci/cd
这是关于 golang 的,我在 gitlab-ci.yml 文件中使用的代码。 这是我no Go files in /builds/release_management
的错误,如下所示:
$ pwd
/builds/release_management
$ echo $BasePathForBinaryFile1
cmd/main_1/
$ ls
COPYING
DebPackageGitLabDocker
README.md
cmd
deb-build
ermbuild
go.mod
publishToRemote.sh
usr
working_gitlab-ci_ableToCreateDebPackageWithNoBinary.yml
$ echo $CI_PROJECT_DIR/$BasePathForBinaryFile1
/builds/release_management/cmd/main_1/
$ GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $BasePathForBinaryFile1
no Go files in /builds/release_management
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit code 1
这是我的工作代码
variables:
GOOS: linux
GOARCH: amd64
TagName: 1.0.71
DebFileName: $TagName
BasePathForBinaryFile1: cmd/main_1/
BinaryName: main1
BasePathForBinaryFile2: cmd/main_2/
BinaryName: main2
build_binary:
stage: build
image: golang:latest
artifacts:
untracked: true
script:
- cd cmd/main_1
- GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $BasePathForBinaryFile1
# - GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $CI_PROJECT_DIR/$BasePathForBinaryFile1
请注意:我也尝试过提供$CI_PROJECT_DIR/$BasePathForBinaryFile1
并且这也不起作用。
虽然,这在我先做 cd 然后使用点(。)从当前构建它时有效
variables:
GOOS: linux
GOARCH: amd64
TagName: 1.0.71
DebFileName: $TagName
BasePathForBinaryFile1: cmd/main_1/
BinaryName: main1
BasePathForBinaryFile2: cmd/main_2/
BinaryName: main2
build_binary:
stage: build
image: golang:latest
artifacts:
untracked: true
script:
- cd cmd/main_1
- GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName .
这是我的文件夹结构:
知道我应该修复什么来修复这个 golang 错误吗?
编辑 1:此外,在执行cd $CI_PROJECT_DIR/$BasePathForBinaryFile
然后ls
时,它不会进入该目录并且仍然仅显示基本目录的内容:
$ echo $CI_PROJECT_DIR/$BasePathForBinaryFile1
/builds/SugarBox/edge_release_management/cmd/main_1/
$ cd $CI_PROJECT_DIR/$BasePathForBinaryFile
$ ls
COPYING
DebPackageGitLabDocker
README.md
cmd
deb-build
ermbuild
go.mod
publishToRemote.sh
usr
working_gitlab-ci_ableToCreateDebPackageWithNoBinary.yml
有几个问题:
BinaryName1
所以GOOS=$GOOS GOARCH=$GOARCH go build -o $BinaryName1 $BasePathForBinaryFile1
成为
GOOS=$GOOS GOARCH=$GOARCH go build -o cmd/main_1/
并且源文件应该在当前目录中,而它们不在那里。 您需要修复配置以使用BinaryName1
和BinaryName2
而不是两次使用BinaryName
。
./cmd/main_1/
。Edit 1
部分cd
不起作用,因为环境名称不正确它应该是$BasePathForBinaryFile1
但它是$BasePathForBinaryFile
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.