所以我一直试图将我的构建工件从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
(这应该是我尝试过的第一件事)。
答案 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中以便发布文档状态时,我无法使它工作。
完整的详细信息在此页面上,但是他们提供的命令对我没有用。