go - 如何添加go二进制作为bitbucket管道工件?

标签 go bitbucket bitbucket-pipelines

您好,我正在尝试将管道的输出二进制文件添加到内置工件中。

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



但是,二进制文件不会出现在工件中:

enter image description here

所以我把这个ls命令放到那里,看看.exe是否存在,确实是:

enter image description here

有谁知道为什么它没有按照我的意愿去做?

最佳答案

那是因为您在创建工件之前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/

相关文章:

PHP Deployer 更改 Composer 版本

http - 如何使用 net/http 打破 go 中的分块?

go - 如何将 image.RGBA (image.Image) 转换为 image.Paletted?

bash - 如何通过 API 对 Bitbucket Pull Request 进行 Markdown/HTML 评论?

javascript - 无法获取同一参数的多个实例的问题列表

linux - dotnet restore 在配置了代理的 bitbucket 管道上失败

Golang 映射结构未按预期工作

go - 启动Go Web服务器时Windows防火墙总是提示

git - 比特桶 git 推送 ssh "conq: invalid repository syntax."

java - CI环境下Maven测试本地运行失败