登录
首页 >  Golang >  Go问答

如何将Go二进制文件上传到Bitbucket管道中?

来源:stackoverflow

时间:2024-03-19 09:12:27 448浏览 收藏

在 Bitbucket 管道中,将构建输出的二进制文件添加到工件时遇到问题。尽管脚本中显示了已创建二进制文件,但它不会出现在工件中。这是因为工件与构建目录相关,而不是当前工作目录。

问题内容

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

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二进制文件上传到Bitbucket管道中?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>