5

我正在尝试使用来自 bitbucket 的新工具管道。我有多个 .NET 控制台应用程序(不是核心应用程序),而不是我想要构建和下载的。我发现这个页面说我可以使用 mono 来构建我的项目。我使用这个 .yml 文件来构建它。

image: mono

pipelines:
  default:
    - step:
        script:
          - nuget restore
          - MONO_IOMAP=case xbuild /t:Build /p:Configuration="Release" /p:Platform="Any CPU" Solution.sln

构建成功,但现在我无法下载我的应用程序(带有所有 dll 的 exe)。我在这里发现我可以使用 bitbucket 下载。但是如何下载我的部署文件夹?在这里,我发现我可以压缩一些文件,然后将其放入 bitbucket 下载。但是我如何将它与单声道一起使用,以及如何压缩整个文件夹,然后下载它?我不介意使用其他东西,比如单声道。

4

2 回答 2

2

Mono构建于 . ,您在 YML 文件的脚本部分中运行的任何 linux 命令都debian:wheezy可以帮助您在 BitBucket Pipelines 拉下容器之前提取文件。在您包含的示例中,最后有一个 POST 命令,它将工件部署到 Bitbucket 中的下载。

curl -v -u $BB_ACCESS -X POST https://api.bitbucket.org/2.0/repositories/$BITBUCKET_REPO_OWNER/$BITBUCKET_REPO_SLUG/downloads/ -F files=@aqua_lambda.zip

它进一步解释了环境变量$BB_ACCESS其他变量在运行时为您加载。

您需要找到 mono 编译到的文件路径并调整示例代码以推送到 Bitbucket 下载,或者Amazon s3也是一个不错的选择。

于 2017-06-09T21:43:41.193 回答
0

这个答案有点晚了......

首先,使用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

请注意,您的发布目录可能与上面的示例不同

于 2018-09-13T14:31:49.183 回答