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

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

介绍

在本系列的第一篇文章中,我们了解了概念、术语、涉及的技术、安装 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 可以在服务器上进行配置,比如根据部署需要进行开发、暂存或生产。

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

必备条件

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

以下是开发人员在开始之前在他们的机器上拥有的必备条件。

  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 Azure Pipeline 在 Azure 上进行 ASP.NET Core 应用程序的 CI/CD - 第四部分

创建新的流水线作业

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

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

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

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

添加参数

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

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

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

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

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

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

添加流水线脚本

在管道脚本部分,提供用于 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/"  
        }  
} 

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

Run the Build

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

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

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

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

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

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

这将在 Linux 服务器上安装 .Net Core 2.1 SDK。

安排构建

转到Jenkins的主页并尝试再次触发构建。

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

我们看到我们的构建成功了。

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

建立自动轮询

让我们为自动轮询设置构建触发器,即一旦代码在 git 存储库中提交,构建就会触发。检查 Poll SCM,计划值应为“* * * * *”。

持续部署

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

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

现在在 cshtml 文件中进行一些更改以检查自动构建是否触发。我将 Index.cshtml 文件中的“Getting Started with Jenkins”更改为“Getting Started with Jenkins on Azure”。

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

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

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

提交代码并推送到原点。

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

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

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

检查构建是否成功。

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

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

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

结论

在本系列文章中,我们了解了 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登录