[Day30] 持续整合与部署 - 我与 ASP.NET Core 3 的 30天

在现代化的网站开发中,逐渐也趋向将交付的功能切小,并频繁交付,使开发出来的功能可以小部分小部分快速确认,持续验证系统开发的成果。但是这样大量且频繁的交付,如果是透过人工手动进行会相当费时,而且量一大,人工的方式就很容易会出错,为了简化这些过程,我们就需要使用到持续整合与持续部署。

持续整合(Continuous Integration 简称CI)主要是用来整合发布前的程序码,确保程序码是可以正常运作的,其中包含:建置(build)、测试(test 包含单元测试、整合测试...等等自动化测试)、程序码分析(source code analysis)等等确保程序品质的动作。

持续部署(Continuous Deployment 简称CD)主要是用来将CI完毕的内容部署上指定的机器中。

在ASP.NET Core 中也有许多可以协助完成CI/CD的工具,今天主要以Github搭配Azure DevOps来完成我们的CI/CD

首先先建立GitHub的Repository後clone至本地,并建立ASP.NET Core的应用程序之後做第一次commit(过程不详细说明,主要讲述内容会着重在CI/CD)

接着可以从Azure DevOps入口网站进入Azure DevOps里,并建立新的组织
https://ithelp.ithome.com.tw/upload/images/20201014/20129389BQoP3OisXk.png

Tips:Azure DevOps可以选择版型,透过右上角的使用者设定的图示进行选择
https://ithelp.ithome.com.tw/upload/images/20201014/20129389d7pTQ4kWbd.png
-------------分隔线-------------

建立完毕在组织内建立新的专案
https://ithelp.ithome.com.tw/upload/images/20201014/20129389P43Qlfe5Lw.png

建立完毕後从Pipelines中点选Create Pipeline建立我们的CI
https://ithelp.ithome.com.tw/upload/images/20201014/201293892aDrqhMIf0.png
https://ithelp.ithome.com.tw/upload/images/20201014/20129389xkcZMQWTaD.png

选择GitHub作为来源
https://ithelp.ithome.com.tw/upload/images/20201014/20129389q46hN3d1t8.png

并选择刚才建立的Repository
https://ithelp.ithome.com.tw/upload/images/20201014/20129389yKy3CJSmbw.png

这中间会出现GitHub授权画面,只要按接受就可以了,也要记得选择要触发CI的分支,预设会是master。

接着会出现设定pipeline的类型,我们可以从下面选取ASP.NET Core的选项
https://ithelp.ithome.com.tw/upload/images/20201015/20129389VKMzA6cxmH.png

接着就会在GitHub的Repository帮我们加入一个YAML档,点选Run执行就可以进行第一次的CI了
https://ithelp.ithome.com.tw/upload/images/20201014/201293890n8ON1AvDA.png

接着就要来建立CD的部分了,选取Pipelines里面的Release,并建立新的Release Pipelines
https://ithelp.ithome.com.tw/upload/images/20201015/20129389rg5v6P3iV2.png
https://ithelp.ithome.com.tw/upload/images/20201015/20129389FFC0KIKAft.png

可以看到有许多选项,我们可以透过右上方的Filter来筛选我们要的内容
https://ithelp.ithome.com.tw/upload/images/20201015/20129389svm5EGoIlZ.png
选取完毕之後便会出现以下画面,左边是部署的来源,右边是CD部署的目标,我们要选取左边的来源
https://ithelp.ithome.com.tw/upload/images/20201015/20129389aFxftofynM.png

选取後会看到多个来源,我们要选的是Build,从我们CI建置好的项目部署到服务器中
https://ithelp.ithome.com.tw/upload/images/20201015/20129389uSPHwvUmZT.png

设定完毕之後会发现无法执行或储存,那是因为我们并没有设定完整要部署服务器的详细资讯,所以我们需要选取上方的Task进行服务器资讯的补足
https://ithelp.ithome.com.tw/upload/images/20201015/20129389r49Go6YEUD.png

接着就是填入个人Azure的相关资料,填入完毕之後就可以储存并执行CD了
https://ithelp.ithome.com.tw/upload/images/20201015/20129389cGHRNhvNNK.png

参考文章
Continuous integration and deployment


<<:  Day 29 Explore monitoring and reporting

>>:  29. 建立路由

IT 铁人赛 k8s 入门30天 -- day6 主要 Kubectl 指令 - K8s CLI

前言 今天将要介绍 kubectl 一些常用的指令 这些指令会在後面实作的部份使用到 前置状态 mi...

[Day15] 帮我们的网站设定 SSL 凭证

截至目前为止,我们的 .NET Web API 都是使用开发者凭证,浏览器并不承认这个凭证,所以每次...

【Day30】综合练习:台铁即时时刻表!

本日作品: https://codepen.io/linchinhsuan/pen/KKMpBZb ...

Day 5 双向绑定及回圈

今天来介绍v-model&data跟v-for的用法 data→用来储存里面的资料,当dat...

Ruby on Rails CRUD 之 U(Update)

更新资料常⽤的有 save 、 update 、 update_attribute 及 update...