azure-devops – Azure DevOps(VSTS)中的发布阶段之间共享文件

大图:我们正在使用Azure DevOps发布流程(到目前为止,我们在设计器中创建了步骤,而不是YAML流水线).我们发布到3个不同数据库的3个环境.部分版本是从DACPAC文件部署数据库.由于使用SqlPackage.exe直接发布到数据库不是很透明(你没有看到并查看实际的SQL脚本),我们想在两个阶段发布:

>从DACPAC创建SQL脚本并查看它
>批准后,从先前生成的脚本运行app和db deploy.

问题:如何在阶段之间共享sql脚本文件以及如何查看它以供批准.可以在不同的代理上触发阶段.

我尝试过的:

>将脚本发布为构建工件 – 这不起作用导致生成脚本我需要连接到数据库并连接到它不应该是构建过程的一部分,尤其是连接到生产数据库.
>将工件发布到Azure管道作为发布步骤 – 在发布时不允许,仅适用于构建
发布
>将工件发布到文件共享 – 我不确定这是如何工作的,文档做得不是很好.此外,我们的基础设施中很难设置常规的Windows文件共享,我宁愿避免使用它.

还有其他建议吗?

最佳答案 虽然您不能使用管道工件,但是
could use Universal Packages in Package Management to publish arbitrary files for later retrieval.只是将文件内容转储到管道日志是允许人们检查它的最简单方法.

您还可以使用占位符创建一个文件作为构建工件,并在每个阶段中从Pipeline变量合并到最终设置中,这样您就可以将它们保留为构建工件.这就是我倾向于为这种性质的任何文件做的事情.这样的声音将不适用于您生成的SQL文件.

或者,如果“查看批准”部分很重要,您可以生成它并将其写入日志,并将其上载到通用包管理.然后在阶段结束时要求批准.在下一阶段,您可以从Universal Package Management下载脚本,也可以在执行前使用完全相同的任务配置重新生成脚本.

点赞