这个答案有点晚了......
首先,使用msbuild而不是 xbuild,因为 xbuild 已被弃用。
现在,您想要的是一个成功的构建以及将发布推送到 bitbucket 下载。
这是您的操作方法:
1.为仓库所有者创建一个App密码
以存储库所有者(也是将上传文件的用户)身份登录到 Bitbucket,然后转到 Bitbucket Settings > App Passwords。
创建一个对您的存储库具有写入权限的新应用密码,并记下弹出的生成密码。密码名称仅供参考,因此请使用“管道”或您喜欢的任何其他名称。

您现在应该有下一步需要的两个值。
<username>: Bitbucket username of the repository owner (and also the user who will upload the artifacts)
<password>: App password as generated by bitbucket
2. 使用身份验证令牌创建管道环境变量
在 Pipelines 设置中定义一个新的安全环境变量:
- 参数名称:
BB_AUTH_STRING
- 参数值:(
<username>:<password>
使用步骤 1 中的值)
您可以在存储库设置中或在拥有存储库的帐户的设置中定义此环境变量。
下面的示例显示了个人帐户环境变量的设置,其中存储库由个人拥有。(请注意,在团队拥有存储库的情况下,您必须在团队设置中配置环境变量,以便它们在管道中可见。)

3. 使您的管道能够使用 curl 和 Bitbucket REST API 部署您的工件
首先添加行以压缩您的发布目录:
- zip -j bin/Release.zip bin/Release/
管道 bash 可能没有安装 zip。要安装 zip,请将以下行添加到您的管道中,然后再执行上述命令:
- apt-get update
- apt-get -y install zip
现在最后添加使用 Bitbucket REST API 的 curl 命令:
- curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"bin/Release.zip"
如果您愿意,您可以从 bin 目录中删除不需要的发布 zip 文件,因为该 zip 现在已经在 Bitbucket 下载中:
- rm -f bin/Release.zip
这是完整的 pipeline.yml:
image: mono
pipelines:
default:
- step:
script:
- nuget restore
- MONO_IOMAP=case msbuild /p:Configuration="Release" /p:Platform="AnyCPU" Solution.sln
- apt-get update
- apt-get -y install zip
- zip -r bin/Release.zip bin/Release/
- curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"bin/Release.zip"
- rm -f bin/Release.zip
请注意,您的发布目录可能与上面的示例不同