您好,我正在尝试将管道的输出二进制文件添加到内置工件中。
image: golang:1.13
pipelines:
default:
- step:
script:
- PACKAGE_PATH="${GOPATH}/src/bitbucket.org/${BITBUCKET_REPO_FULL_NAME}"
- mkdir -pv "${PACKAGE_PATH}"
- tar -cO --exclude-vcs --exclude=bitbucket-pipelines.yml . | tar -xv -C "${PACKAGE_PATH}"
- cd "${PACKAGE_PATH}"
- go get -v
- env GOOS=windows GOARCH=amd64 go build
- go build -v
- ls
artifacts:
- fx_update.exe
但是,二进制文件不会出现在工件中:
所以我把这个
ls
命令放到那里,看看.exe是否存在,确实是:有谁知道为什么它没有按照我的意愿去做?
最佳答案
那是因为您在创建工件之前cd
到包目录。工件定义是相对于构建目录的,而不是相对于当前工作目录的(有关更多详细信息,请参见本页https://confluence.atlassian.com/bitbucket/using-artifacts-in-steps-935389074.html)。您可以通过将fx_update.exe
复制到基本构建目录来解决此问题:
- step:
script:
- PACKAGE_PATH="${GOPATH}/src/bitbucket.org/${BITBUCKET_REPO_FULL_NAME}"
- mkdir -pv "${PACKAGE_PATH}"
- tar -cO --exclude-vcs --exclude=bitbucket-pipelines.yml . | tar -xv -C "${PACKAGE_PATH}"
- cd "${PACKAGE_PATH}"
- go get -v
- env GOOS=windows GOARCH=amd64 go build
- go build -v
- cp fx_update.exe ${BITBUCKET_CLONE_DIR}
artifacts:
- fx_update.exe
关于go - 如何添加go二进制作为bitbucket管道工件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59562743/