Python 为部署定义azure-pipelines.yml

Python 为部署定义azure-pipelines.yml,python,azure,azure-devops,azure-pipelines,devops,Python,Azure,Azure Devops,Azure Pipelines,Devops,我想为Python函数应用程序创建一个管道,并将其部署到Azure。我想在某些条件下配置yml文件 我是否可以在同一个yml文件中同时处理到暂存的部署和生产 如何修改下面的yml文件以适应上述条件?请给我一些建议 请给我一些建议。非常感谢您的帮助。是的,这是可能的。但您需要知道,您希望能够重用以前运行的工件。在您的管道中: 构建阶段应始终运行。因此,触发器部分应如下所示: 触发器: -登台 -生产 我建议您为回购设置pr:none,并设置tup分支策略。如果您跳过“pr:none”

我想为Python函数应用程序创建一个管道,并将其部署到Azure。我想在某些条件下配置yml文件

我是否可以在同一个yml文件中同时处理到暂存的部署和生产

如何修改下面的yml文件以适应上述条件?请给我一些建议


请给我一些建议。非常感谢您的帮助。

是的,这是可能的。但您需要知道,您希望能够重用以前运行的工件。在您的管道中:

  • 构建
    阶段应始终运行。因此,触发器部分应如下所示:
触发器:
-登台
-生产
我建议您为回购设置
pr:none
,并设置tup分支策略。如果您跳过“pr:none”部分,或者将其设置为
staging
production
,则每次提交将获得两个构建(一个用于CI,一个用于pr)。(,)

  • 对于
    staging
    部署阶段,应添加此条件
dependsOn:Build
条件:和(succeed(),eq(变量['System.SourceBranch'],'staging'))
请检查
System.SourceBranch
变量是否具有类似
staging
ref/heads/staging
的值

  • 对于
    生产
    部署阶段,您应该遇到类似的情况
dependsOn:Build
条件:和(succeed(),eq(变量['System.SourceBranch'],'production'))

所有这些东西都需要大量复制,因此我建议您使用。如果在部署到暂存或生产方面没有太大差异,您将能够提取它并将其参数化。

@Krzystof这就是我所拥有的。明智的做法是使用两个单独的文件,一个用于暂存,一个用于prod,还是在一个yml文件中管理它?我在yml文件中也有评论,以防我在OP中遗漏了任何内容。请告知我的yml是否良好。我宁愿选择单独的文件,一个用于暂存,一个用于生产。它将更具可读性。您可以将构建阶段提取为模板,并在两个管道中重用它。想象一下,如果有更多的环境,会发生什么情况,对于我来说,在这种情况下,最好是每个环境有一个文件。您的文件看起来不错。:)我已经用模板更新了上面的分支。你能确认一下,让我知道它是否好看,或者我应该做些什么改变吗?谢谢。这看起来不错,但你可以做得更多。您可以为部署作业创建模板,并将环境名称作为参数传递。你们可以在我的网站上找到这个例子,或者在这里找到一个有点奇怪的地方,那个就是你们在生产构建中的pr触发器。您已经为登台设置了pr,但实际上它只进行构建,因为您还具有允许部署
生产分支的条件。是的,这是我最关心的。我知道这是错误的。对于生产构建,它应该仅在从暂存到生产的PR打开时运行,而不适用于任何其他PR。如何进行更改?