使用 Jenkins Azure Pipeline 在 Azure 上进行 ASP.NET Core 应用程序的 CI/CD – 第四部分

作者 : 慕源网 本文共3038个字,预计阅读时间需要8分钟 发布时间: 2021-11-8 共479人阅读

介绍

在本系列的第一篇文章中,我们了解了概念、术语、涉及的技术、安装 Jenkins 和创建 ASP.NET Core 应用程序。我们还介绍了使用 Jenkins 通过两种方法(管道方法和自由式项目方法)持续集成 ASP.NET Core 应用程序。在第二篇文章中,我们将 ASP.Net 核心应用程序发布到 Azure 应用服务并在 Azure 上配置了 Jenkins。在本系列的第三篇文章中,我们重点介绍了 Azure Active Directory 和服务主体以及如何将 Jenkins 与 Azure 服务主体集成。

路线图

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

以下是我们将遵循的路线图,以完全学习使用 Jenkins 在 Azure Web 应用程序上进行 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. 适用于 Windows 的 Git

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

本节将解释我们如何实现应用程序的持续集成和部署。所有必需的设置都已完成。我们现在只需要配置 Jenkins 即可实现。我们将通过使用管道项目方法来做到这一点。

创建新的流水线作业

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

为管道项目指定一个有意义的名称(例如 Jenkins-on-Azure)并选择“管道”作为项目类型。

添加参数

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

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

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

添加流水线脚本

在管道脚本部分,提供用于 git check out、构建、发布和部署的管道脚本。

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/"  
        }  
} 

Run the Build

保存配置并进入主页。您可以手动触发构建。由于我们没有在参数中提供默认值,它要求提供这些值。提供值并单击“Build”按钮。

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

Install Dotnet

让我们在 Linux 上安装 dotnet SDK 2.1。回到运行隧道的终端,一一运行以下命令,注册微软密钥和订阅源。

  • 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 更新
  • 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。

提交代码并推送到原点。

我们看到,只要将代码推送到存储库,在一秒钟内,构建就会自动触发。

检查构建是否成功。

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

结论

在本系列文章中,我们了解了 Jenkins 的使用以及它在我们的软件开发生命周期中的作用。我们学习了在本地开发环境中使用 Jenkins for CI 和 ASP.NET Core Web 应用程序的 CD,将 Web 应用程序发布到 Azure Web App Service 并在 Azure 上配置 Jenkins 以实现托管应用程序的持续集成和持续部署。Jenkins 是一个很大的话题,虽然使用它需要很大的耐心,但它是设置事情所必需的。但是,一旦设置,它就可以无缝运行。


慕源网 » 使用 Jenkins Azure Pipeline 在 Azure 上进行 ASP.NET Core 应用程序的 CI/CD – 第四部分

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录