在当今快速发展的软件开发领域,自动化和持续集成/持续部署(CI/CD)的概念已经成为提高开发效率和质量的关键。Jenkins作为一个开源的自动化服务器,能够帮助团队和开发者持续构建和测试软件代码。本文将介绍如何使用Jenkins实现ASP.NET Core应用的CI/CD,包括本地开发环境的配置,将应用发布到Azure Web App Service,以及在Azure上配置Jenkins以实现托管应用的持续集成和持续部署。
本系列文章将分为四天来介绍Jenkins在ASP.NET Core应用CI/CD中的应用:
Jenkins是一个开源的自动化服务器,它可以帮助开发者自动化几乎任何类型的任务,包括构建、测试和部署软件。Jenkins可以设置为在每次代码提交时自动执行持续集成,持续测试构建,发布工件和文档,以及部署代码。Jenkins可以配置在服务器上,无论是开发、测试还是生产环境,以满足部署需求。
在开始本文之前,请确保机器上已经安装了以下软件:
本节将介绍如何启用应用的持续集成和部署。所有必要的设置已经完成,现在只需要配置Jenkins即可实现。将通过使用管道项目方法来实现。
在Jenkins首页,创建一个新的作业。给管道项目一个有意义的名称(例如,Jenkins-on-Azure),并选择“Pipeline”作为项目类型。
在“General”标签页,勾选“此项目是参数化的”选项。将在这里添加一些参数。
在管道脚本部分,提供git检出、构建、发布和部署的管道脚本。
node {
stage('Checkout git repo') {
git branch: 'master', url: params.git_repo
}
stage('build and publish') {
sh(script: "dotnet publish JenkinsIntegration -c Release", returnStdout: true)
}
stage('deploy') {
azureWebAppPublish azureCredentialsId: params.azure_cred_id,
resourceGroup: params.res_group, appName: params.JenkinsIntegration,
sourceDirectory: "JenkinsIntegration/JenkinsIntegration/bin/Release/netcoreapp2.1/publish/"
}
}
保存配置并返回首页。可以手动触发构建,由于没有在参数中提供默认值,它会要求提供值。提供值后点击“Build”按钮。
让在Linux上安装dotnet SDK 2.1。返回到运行隧道的终端,并依次运行以下命令以注册Microsoft密钥和源。
wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
现在运行以下命令以安装.NET Core 2.1 SDK。
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.1
这将在Linux服务器上安装.NET Core 2.1 SDK。
转到Jenkins首页,再次尝试触发构建。可以看到构建成功了。
让设置构建触发器以实现自动轮询,即一旦代码提交到git仓库,构建就应该触发。检查Poll SCM并设置计划值为“* * * * *”。
打开浏览器并浏览部署在Azure上的应用。可以看到应用正在运行。
现在对cshtml文件进行一些更改以检查自动构建是否触发。所以,将Index.cshtml文件中的文本从“Getting Started with Jenkins”更改为“Getting Started with Jenkins on Azure”。
并更改应用的版本为2.0。
提交代码并推送到origin。
可以看到,一旦代码推送到仓库,构建就会在一秒钟内自动触发。
检查构建是否成功。
回到浏览器并刷新它,可以看到更改的内容已经反映在这里,这意味着应用已经自动部署到Azure上了。