Azure DevOps(二):持续部署

在上一篇文章中主要讲了Azure DevOps的CI部分,也就是持续集成的部分。Azure DevOps CI/CD(一):初步

所以在本篇文章中将主要讲一下在Azure DevOps中如何进行持续部署。

那么我们就直接进入正题了。

创建Release Pipeline

跟持续集成(CI)类似,我们要先创建一个发布管道来执行一系列的部署操作,这时候要在左边栏Pipelines中选择Releases选项卡。

Azure DevOps(二):持续部署

上图因为我已经创建了一个发布管道所以我这里多了一个列表,如果还没创建任何的发布管道在页面中间会有一个创建按钮点击创建就可以了。

当我们点击创建后将会出现下面的页面。右边有很多已经预设好的部署环境,nodejs,docker,k8s等等都有,不过我个人一般很少用预设的,因为一般需要都很难完全符合,所以还不如自己创建一个。

Azure DevOps(二):持续部署

输入一个名字,随便都可以这里我就先设为releaseTest了。输完可以点击一下上面的保存,保存一下更改。

Azure DevOps(二):持续部署

添加工件

下面就是添加工件的操作了,我们需要先为我们的发布管道添加工件,这个工件可以理解为需要发布部署的文件集。那么问题来了,这个待发布部署的文件集从哪来呢?

这个工件就是从我们的构建管道也就是第一篇文章所介绍的持续集成(CI)的管道来的,那么在这里要打个岔,我们想要拿到发布工件,那么就需要在构建管道中告诉Azure DevOps哪些是需要发布部署的,回到上一篇文章的azure-pipelines.yml文件,我们需要添加下图这个task来把需要的文件推到发布管道中。

Azure DevOps(二):持续部署

下图是这个task在azure-pipelines.yml文件中的代码形式,我们注意到一个用$(Build.ArtifactStagingDirectory)这个东西,这个是Azure DevOps中预定义的路径,在CI构建管道中所有的打包,发布,分发的默认路径就是这个路径。下面这个task的意思是说把$(Build.ArtifactStagingDirectory)文件夹里面的东西推到发布管道作为工件。

Azure DevOps(二):持续部署

好了,我们对上一篇文章构建管道的修改补充就到这里了。让我们回到正题。

点击左边的蓝色框框就可以添加工件了。

Azure DevOps(二):持续部署

点击后在右侧会有个弹窗,这里的构建管道的源我们就选项目的构建管道就好了,点击下拉菜单选择就可以了。
选择好后点击下面的Add按钮添加

Azure DevOps(二):持续部署
然后回来看到已经添加好了。

这里我们点击工件右上角的圆形闪电图标,设置触发器。

Azure DevOps(二):持续部署

点击后右侧也会有个弹窗设置,这里有两个触发器,第一个是否启用持续集成(CD),第二个则是在提PR时也触发部署。

一般都是选择的第一个开启持续集成(CD),并且开启持续集成后我们还可以针对项目仓库的分支和Tag来进行过滤。

Azure DevOps(二):持续部署
Azure DevOps(二):持续部署

设置Stages

添加完工件后我们还需要设置StagesStage可以理解为执行部署的阶段,一个阶段可以有下一个阶段,或者两个阶段同级,我们可以看到工件跟Stage之间有一根线连着,从左到右看可以看作是一个部署的工作流。

Azure DevOps(二):持续部署

点击Stage左边的小人和闪电的图标后右边会有设置弹窗,就是设置这个部署条件的。

触发器有自动和手动,选择手动的话每次CI构建管道完成后需要手动点击部署来触发部署,当选择手动后Stage和工件或者上一个Stage的连线会断开来指示工作流方向。而自动部署有工件过滤,计划,等等的可以设置。

Azure DevOps(二):持续部署

还有一个就是我们可以设置需要授权部署,开启Pre-deployment approvals后就可以选择授权人和过期时间,当发布管道工作流进入到了这个Stage时会发送一封邮件到授权人的邮箱,授权人可以直接在邮箱中点击同意然后发布管道就会继续沿着工作流继续执行。

Azure DevOps(二):持续部署

添加部署任务

上面都是在添加工件,设置Stage工作流条件等,还没正真配置执行部署。那么现在我们就关注如何配置部署,使我们的工件正真的发布部署到目标服务器上。

Azure DevOps(二):持续部署

点击上图releaseTest下面的job和task后打开新的界面选择需要的task,这跟构建管道是一样的。

Azure DevOps(二):持续部署

作为例子我这里就选择.Net Core的Task,然后选择dotnet push来发布nuget包。

这里我们可以看到设置Path to NuGet packages to publish这里,右边有三个点的图标,点击该图标会弹出一个类似文件浏览器的窗口,我们可以在这个文件夹浏览器窗口选择我们在构建管道推送到工件里面的文件。配置完成后点击Add添加该Task。

还可以添加多个Task,例如有些情况可能打包出来的是压缩包,那么我们可以首先添加一个解压功能的Task,然后下面再根据自己需要在解压功能的Task后面添加SSH,FTP,...或者其他的Task来配合完成部署。

文件浏览器这个功能都不限于.Net Core的Task。任何其他的javadockernodejs Task等等都是可以通过这种图形化的文件浏览器来选择需要发布部署的文件。

Azure DevOps(二):持续部署
Azure DevOps(二):持续部署

当所有的都配置完成后记得点击上面的保存哦。这样配置完成后当我们的提交代码时就会自动创建一个发布管道,如果发布管道是自动运行的那么就会自动部署了,如果是配置的手动部署那么只需要我们来到发布管道页面手动点击一下部署按钮就可以执行部署了。
保存哦。这样配置完成后当我们的提交代码时就会自动创建一个发布管道,如果发布管道是自动运行的那么就会自动部署了,如果是配置的手动部署那么只需要我们来到发布管道页面手动点击一下部署按钮就可以执行部署了。


个人公众号,欢迎关注。天天更新是不可能的,这辈子都不可能天天更新。只有心情好的时候更新一下这样子才维持的了生活。
Azure DevOps(二):持续部署