我是竹子新手。我尝试做的是收集在构建过程中创建的所有.dacpac
个文件。
image: microsoft/dotnet:latest
pipelines:
default:
- step:
script: # Modify the commands below to build your repository.
- cd BackgroundCode
- dotnet restore
- dotnet run
artifacts:
- '../**/*.dacpac'
目录结构将是
'剂/建造/项目/ [项目] / [项目] .dacpac'。
管道的输出说
成功生成zip存档 的/ opt / Atlassian的/管道/剂/建造/项目/ [项目] / [项目] .dacpac
这意味着在构建过程中确实生成了文件。 我做错了什么吗?如果不是,我会在哪里找到这些文物。
答案 0 :(得分:3)
不幸的是,根据文档,在管道运行后删除了所有工件:
https://confluence.atlassian.com/bitbucket/using-artifacts-in-steps-935389074.html
"一旦管道完成,无论是成功还是失败,都是 工件被删除。"
但是,您可以将工件部署到Bitbucket下载部分或其他任何位置:
- step:
name: Archive
script:
- curl -X POST --user "${BB_AUTH_STRING}" "https://api.bitbucket.org/2.0/repositories/${BITBUCKET_REPO_OWNER}/${BITBUCKET_REPO_SLUG}/downloads" --form files=@"something/**"
答案 1 :(得分:0)
在bitbucket-pipelines.yml中,每当您前进到其他“ step:
”时,它将重置几乎所有内容并独立执行上一步。这并不总是很明显,并且可能会造成混淆。
在上一步中,您使用cd BackgroundCode
进入了一个子文件夹。 脚本执行到“ artifacts:
”步骤时,当前工作目录将重置为原始$BITBUCKET_CLONE_DIR
。因此,您需要在每个步骤中再次cd BackgroundCode
,或使用relative to the $BITBUCKET_CLONE_DIR
的路径,如下所示:
artifacts:
- BackgroundCode/**/*.dacpac
或
step2:
- cd BackgroundCode
# List the files relative to the 'BackgroundCode' directory
- find . -iname '*.dacpac'
这现在将自动保存工件(7天),您可以在顶部的“工件”标签中看到它。
答案 2 :(得分:0)
我认为一个不错的选择是使用如前所述的bitbuckets下载部分,但是您可以使用其专用工具来代替curl,并且跳跃API不会改变并中断您的管道。
https://support.atlassian.com/bitbucket-cloud/docs/deploy-build-artifacts-to-bitbucket-downloads/
与卷曲相比,我认为它更安全,更易于设置且更易于维护。例如,链接的文档显示了该工具的0.1.2版本,而最新的是0.3.2,它仅需要我更新该版本号,而无需其他任何更新。我必须使用对存储库的写访问权限来设置应用程序权限密钥,将其设置为管道变量,将我的帐户名设置为管道变量(链接的文档对此进行了很好的描述),然后向管道yaml文件添加了一个简单的步骤。我可以想到的一个缺点是,对于较大的文件,卷曲可能会更好。因此,将其作为另一种做事方式,而不是将其作为做事的最终方式。
我的示例yaml,您使用一些容器来构建源,定义了Makefile构建步骤,然后重命名输出工件文件并后缀了一个构建ID(这样,我的下载文件中将包含多个输出文件)部分,而不仅仅是最新的)。然后,我将通过在构建步骤中添加工件来确保下一步可以访问这些工件:
工件:
- build / output-*。zip
然后最后一个部署步骤将访问zip并将其上传给您,他们的工具不需要任何其他操作,只需设置三个变量,用户名,应用密钥和要上传的文件即可。
为完成示例管道yaml:
image: <SOMETHING>
pipelines:
default:
- step:
name: 'Build'
script:
- make all
- mv build/output.zip build/output-$BITBUCKET_BUILD_NUMBER.zip
artifacts:
- build/output-*.zip
- step:
name: 'Deploy the output into the download section'
script:
- pipe: atlassian/bitbucket-upload-file:0.3.2
variables:
BITBUCKET_USERNAME: $BITBUCKET_USERNAME
BITBUCKET_APP_PASSWORD: $BITBUCKET_APP_PASSWORD
FILENAME: "build/output-$BITBUCKET_BUILD_NUMBER.zip"