有哪些方法可以共享和维护这些应用程序的发布过程,以避免在更改时更新每个应用程序的发布过程?
背景:
1. 我有数十个具有相同发布流程的类似应用程序。 2. 每个应用程序(在其自己的存储库中)都将拥有自己的Azure Pipeline。 3. 我对此问题的自定义解决方案感到满意。
选项:
- 为每个管道创建一个发布版本 -- 不太喜欢!
- 缺点:Azure似乎希望在管道和发布之间建立一对一的关系。
- 缺点:我想尽可能避免创建许多发布版本,因为更改将几乎无法维护。
使用自定义阶段模板 -- 不符合我的需求
缺点:发布不共享自定义阶段模板。
您创建的自定义模板仅适用于创建它们的项目。[Azure Documentation]
缺点:自定义阶段模板无法更新(截至本篇文章发布时)。
要更新阶段模板,请删除发布管道中的现有模板,然后将该阶段另存为具有相同名称的模板。[Azure Documentation]
将发布过程放入Pipeline .yml文件中 -- 似乎是可能的,但....
- 优点:进程将存储在共享的“common”库中。
- 优点:每个应用程序都将具有最小的Pipeline .yml文件,在运行共享进程之前设置一些参数。
- 缺点:如果没有发布门户UI,我将如何跟踪和手动部署发布?我错过了什么吗?
- 使用不同应用程序的工件触发相同的发布 -- 不确定是否可行....
- 优点:一个发布过程,易于通过发布门户UI根据需要跟踪和部署。
- 缺点:我将如何跟踪不同应用程序的发布?我会为应用程序命名发布吗?
- 缺点:我不知道如何设置,因为发布与主管道相关联。
在将工件源链接到发布管道时....[Azure Documentation]
- 缺点:尽管可以使用多个工件源,但发布需要默认的工件管道或源存储库。我需要编写程序来设置工件源吗?
当您将多个工件源链接到发布管道时,其中一个被指定为主要工件源。主要工件源用于设置许多预定义变量。它还可以用于命名发布。[Azure Documentation]
- 使用多个工件源和工件变量 -- 不确定是否可行....
当有多个工件源链接到发布管道时,您可以访问每个工件源的信息。[Azure Documentation]
底线
我能够在Octopus Deploy中解决许多这些问题。然而,我在看如何将我的DevOps流程移至Azure DevOps时遇到了很大的困难。您会如何处理这种情况?