如何将 go binary 添加为 bitbucket 管道工件?
How to add go binary as bitbucket pipeline artifact?
您好,我正在尝试将我的管道的输出二进制文件添加到内置工件中。
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
您好,我正在尝试将我的管道的输出二进制文件添加到内置工件中。
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