Bitbucket Pipelines没有将文件上传到“下载”页面

时间:2017-06-28 07:58:21

标签: curl bitbucket bitbucket-api bitbucket-pipelines

所以我一直试图将我的构建工件从Bitbucket Pipelines直接上传到Bitbucket下载页面。

我的构建过程生成一个带有所有工件的.tar文件,然后我尝试通过curl上传它。 curl运行,它甚至显示进度,管道成功结束。

这是卷曲和结果:

curl -X POST https ://${BB_AUTH_STRING}@api.bitbucket.org/2.0/repositories/mycompany/myrepository/downloads --form files=@"artifact.tar"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                             Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 1890k    0     0  100 1890k      0  11.0M --:--:-- --:--:-- --:--:-- 10.9M

我尝试使用变量作为存储库名称并仅使用原始值。无论哪种方式,相同的结果。构建成功但“下载”页面仍为空。你能帮我解决这个问题吗?

编辑:刚刚找到原因。问题是卷曲无声地失败了。我添加了-v标记,发现我遇到了身份验证问题。所以,对于那些卷曲问题的人,请不要忘记添加-v(这应该是我尝试过的第一件事)。

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题。我使用这个命令工作了:

curl -s -u "${BITBUCKET_REPO_OWNER}:${BB_AUTH_STRING}" -X POST "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" -F files="@${ARTIFACT_NAME}" --verbose

在我的情况下,ARTIFACT_NAME是我上传的文件的名称。请注意,文件名的前缀为命令中的@。正在上传的目录中的文件名只与ARTIFACT_NAME匹配。

我还发现将用户和密码拆分为命令的-u部分非常重要。出于这样或那样的原因,当我把它们包含在url中以便发布文档状态时,我无法使它工作。

完整的详细信息在此页面上,但是他们提供的命令对我没有用。

https://confluence.atlassian.com/bitbucket/deploy-build-artifacts-to-bitbucket-downloads-872124574.html