使用Jenkins在Azure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI/CD)–第4天

目录

主题

路线图

Jenkins

先决条件

使用Jenkins Azure Pipeline在Azure上的ASP.NET Core应用程序的CI/CD

创建新的管道作业

添加参数

添加管道脚本

运行构建

安装Dotnet

安排构建

构建自动轮询

持续部署

结论


主题

在该系列的第一篇文章中,我们通过两种方法(管道方法和自由样式项目方法)了解了Jenkins的概念,术语,涉及的技术,安装Jenkins,创建ASP.NET Core应用程序以及使用Jenkins持续集成ASP.NET Core应用程序。在第二篇文章中,我们将ASP.NET Core应用程序发布到Azure App ServiceAzure上的Configured Jenkins。在该系列的第三篇文章中,我们重点介绍了Azure Active DirectoryService Principal,以及如何将JenkinsAzure Service Principal集成。

路线图

本系列文章将说明如何在本地开发环境中为CICDASP.NET Core Web应用程序使用Jenkins,将Web应用程序发布到Azure Web App Service以及在Azure上配置Jenkins以便持续集成和持续部署托管应用程序。GitHubDevOps用作源代码控制存储库。我们将使用Jenkins创建一个管道,该管道从GitHub获取代码,构建代码,运行测试并部署程序包。这是对GitHub上代码的每次提交的重复性任务。

以下是我们将遵循的路线图,以完全了解使用JenkinsAzure Web App上进行ASP.NET Core应用程序的持续集成和部署(CI / CD)的端到端开发和配置。

Jenkins

Jenkins是自动化的开源工具,可帮助团队/开发人员持续构建和测试软件代码。它使开发人员无需人工干预即可轻松集成和测试代码。可以设置该工具以创建一个部署管道,该管道包括在每次代码提交时对代码进行持续集成,不断地测试构建,发布工件和文档以及部署代码。可以在服务器上配置Jenkins,根据部署需要将其配置为开发,暂存或生产。

先决条件

在开始本文之前,请阅读本系列的前两篇文章。

以下是开发人员在开始使用计算机之前的先决条件。

  1. Visual Studio 2017/2019
  2. 已安装Dotnet 2.1 SDK
  3. 免费/付费Azure订阅
  4. Java 1.5或更高版本
  5. Git帐户
  6. WindowsGit

使用Jenkins Azure PipelineAzure上的ASP.NET Core应用程序的CI/CD

本节将说明如何启用应用程序的持续集成和部署。所有必需的设置均已完成。我们只需要立即配置Jenkins即可实现。我们将使用管道项目方法进行此操作。

创建新的管道作业

Jenkins主页上,创建一个新作业。

给管道项目取一个有意义的名称(例如,Jenkins-on-Azure),然后选择Pipeline作为项目类型。

添加参数

常规选项卡上,选中选项此项目已参数化 ”。我们将在此处添加一些参数。

添加三个字符串参数,命名git_repo为提供git存储库的URLres_group提供资源组的名称和JenkinsIntegration,这将是我们的Web应用程序项目的名称。您可以在此处提供默认值,否则将在运行构建时要求您提供默认值。

添加名为azure_cred_id的凭据参数,并将凭据类型选择为Microsoft Azure Service Principal,默认值为我们之前创建的id服务主体。

添加管道脚本

管道脚本部分中,提供管道脚本以进行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/"
        }
}

运行构建

保存配置并转到主页。您可以手动触发构建,并且由于我们没有在参数中提供默认值,因此它要求提供这些值。提供值,然后单击构建按钮。

我们期待一个干净而成功的构建,但是下面我们看到我们的构建失败了。它说的原因是在发布时找不到dotnet命令。由于Jenkins处在Linux工作区下运行。我们的Linux服务器应该安装了dotnet

安装Dotnet

让我们在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存储库中提交,构建就会触发。检查轮询SCM”,计划值应为“ * * * * *

持续部署

打开浏览器,浏览到Azure上已部署的应用程序。我们看到应用程序正在运行。

现在,在cshtml文件中进行一些更改,以检查是否触发了自动生成。因此,我将Index.cshtml文件中的文本从Jenkins入门更改为Azure上的Jenkins入门” 

并且,将应用程序的版本更改为2.0

提交代码并推送到源代码处。

我们看到,将代码推送到存储库后,一秒钟之内就会自动生成触发器。

检查构建是否成功。

回到浏览器,并刷新它,我们看到所做的更改已反映在此处,这意味着我们的应用程序已自动部署在Azure上。

结论

在本系列文章中,我们了解了Jenkins的用法以及它在我们的软件开发生命周期中的有用性。我们学习了在本地开发环境中为CICDASP.NET Core Web应用程序的使用Jenkins,将Web应用程序发布到Azure Web App Service,以及在Azure上配置Jenkins以便持续集成和持续部署托管应用程序的过程。Jenkins是一个广泛的话题,在使用它时,需要耐心等待设置,但是一旦设置,它就可以无缝运行。

发布了69 篇原创文章 · 获赞 139 · 访问量 45万+

猜你喜欢

转载自blog.csdn.net/mzl87/article/details/104410110