首页 > 编程语言 >为 .NET Core Web 应用程序使用 Jenkins 和 GitHub 的 CI/CD 管道

为 .NET Core Web 应用程序使用 Jenkins 和 GitHub 的 CI/CD 管道

时间:2022-09-18 03:12:43浏览次数:125  
标签:Core CI GitHub Java 詹金斯 管道 构建 Jenkins NET

为 .NET Core Web 应用程序使用 Jenkins 和 GitHub 的 CI/CD 管道

我们将讨论 Jenkins 并逐步构建、测试和部署 .NET Core 应用程序

议程

  • 詹金斯简介
  • 詹金斯的特点
  • 詹金斯持续集成
  • Java和Jenkins的安装
  • .NET Core 应用的逐步实现
  • Jenkins 管道和配置

先决条件

  • GitHub
  • 詹金斯
  • IIS
  • 视觉工作室 2022
  • .NET 核心 SDK 6
  • 爪哇 11

詹金斯简介

  • Jenkins 是用 java 编写的开源自动化服务器
  • 它支持从软件开发中的构建、测试和部署的所有持续集成和持续部署相关的事情
  • CI/CD 是 DevOps 的主要部分,市场上的许多工具被 Jenkins、TeamCity、Azure DevOps 等许多组织使用。
  • 这使开发人员可以更轻松地通过集成更改来专注于软件开发以提高生产力,而不是专注于应用程序的构建、测试和部署

詹金斯的特点

  • 开源
  • 易于配置和安装
  • 多个插件
  • 用户友好的界面

詹金斯持续集成

  • 在持续集成过程中,我们将开发人员提交的所有最新代码更改集成到 git 和其他任何地方。

  • 实时多个开发人员在同一个分支上工作,EOD 会将他们的工作提交给 git。
  • 稍后,每当提交新代码时,Jenkins 服务器都会触发,运行测试用例,并根据我们的需要为 QA、DEV 和生产等许多环境创建无错误的构建。
  • 如果某些构建和单元测试用例失败,则用户将收到通知,并且新代码将再次出现,并且此过程将持续进行
  • 如果您想了解有关 Jenkins 的更多信息,请阅读官方文档( 詹金斯.io/doc )。

Java和Jenkins的安装

爪哇 -

步骤1

为 Jenkins 安装 Java 11

https://www.oracle.com/java/technologies/downloads/#java11

第2步

打开 exe 文件并在您的系统上安装 Java

第 3 步

使用CMD管理员模式设置Java Path的环境变量

setx -m JAVA_HOME “C:\Program Files\Java\jdk-11.0.16.1”

setx -m PATH “%JAVA_HOME%\bin;%PATH%”

第4步

检查Java是否正确安装,如下所示

詹金斯 -

步骤1

安装詹金斯

https://www.jenkins.io/download/

第2步

打开exe文件并选择本地服务作为登录类型

第 3 步

配置端口号(默认端口为 8080),但我设置为 8888,您可以根据可用性进行配置

第4步

提供程序数据内 Java 文件夹中的 bin 文件夹的 Java JDK 路径

第 5 步

成功安装 Jenkins 后,服务器在浏览器中打开 URL( http://localhost:8888/ )

第 6 步

您可以在里面看到一个提供管理员密钥的

步骤 7)

根据需要自定义 Jenkins 插件。我为 .NET 应用程序安装了 Git、MS Build MS Test 和其他一些

第 8 步

设置每次在 Jenkins 服务器上登录时所需的用户凭据。

第 9 步

安装默认插件需要一些时间

第 10 步

转到 Manage Jenkins 中的 Manage Plugins 并为我安装的 .NET 应用程序、MS Build、Git、MS Test 和其他一些插件安装所需的插件。

.NET Core 应用的逐步实现

步骤1

创建新的 Web API

第2步

配置应用程序

第 3 步

提供额外信息

第4步

最后,运行应用程序

第 5 步

现在我们要发布这段代码

第 6 步

选择文件夹

第 7 步

它将采用默认发布路径

第 8 步

最后,发布

第 9 步

转到解决方案中项目的属性部分并编辑 FolderProfile.pubxml 文件并将 Web 发布方法更改为 Package

第 10 步

我们还需要 Microsoft Web Deploy,而且大多数时候它会随 Visual Studio 一起提供

第 11 步

稍后,我们只是在同一个解决方案中创建一个空的 xUnit 测试用例项目,仅用于演示目的

第 11 步

在提交到 git 之前,运行您的项目并确认您的系统上的所有东西都运行良好。

第 12 步

接下来,创建一个 git 存储库并将您的代码推送到其中

Jenkins 管道和配置

步骤1)

首先,我们将添加 MS Build Path 和 Configuration 到 Manage Jenkins 内的 Global Tool Configuration

第2步)

接下来,我们在全局工具配置里面添加git文件路径

第 3 步

现在,我们将在 Manage Jenkins 内的 Manage Credentials 中添加 git 凭据,单击并 全局凭证(无限制) 添加和您的 git 凭据,例如用户名和密码,一旦您单击保存,它将自动创建凭据 ID,并且您需要将该 ID 放入管道配置中。

第4步

打开 Jenkins Dashboard 并单击 New Item 以创建管道

管道基本上是在创建构建之前要执行的一组步骤,包括单元测试、集成测试用例以及更多根据需要

第 5 步

提供一般信息,如描述

第 6 步

接下来,单击几个复选框,它们可以帮助我们在 git 存储库中提交代码时自动触发管道,并放置五个用空格分隔的开始,以便我们在开发人员提交代码时立即触发管道

步骤 7)

添加以下管道脚本,这基本上是在创建构建之前要执行的一组步骤(注意 - 请确保所有路径都正确,否则会在构建过程中引发错误)

第 8 步

打开 IIS 并创建一个空网站并指向任何空文件夹,在构建完成后我们的管道将在其中发布和部署我们的代码

第 9 步

之后转到仪表板并运行您的管道

第 10 步

在这里你可以看到构建已经开始

现在,每当您更改添加提交代码时,都会触发构建,并且管道将为我们创建一个新构建并将其部署在 IIS 中。这个过程是连续运行的。此外,如果由于某些测试用例等原因导致构建失败,那么您还可以使用 Jenkins 内部的 SMTP 协议配置电子邮件,以帮助我们构建

第 11 步

最后,打开 IIS,您现在可以使用最新版本访问您的应用程序

第 12 步

从 IIS 浏览 URL,您可以看到应用程序处于运行模式

Git 存储库

您可以从我的 Git 存储库中克隆代码

https://github.com/Jaydeep-007/JenkinsWebApplicationDemo

结论

在这里,我们讨论了 Jenkins 的介绍以及安装和配置管道的分步实现,以实现持续集成和持续部署。

快乐学习!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/37424/54561802

标签:Core,CI,GitHub,Java,詹金斯,管道,构建,Jenkins,NET
From: https://www.cnblogs.com/amboke/p/16704108.html

相关文章

  • Vue3 Error on build in CI: Cannot find module ‘node:path‘ in vite.config.ts
    node 版本是v14.17.0的版本,出现了不兼容的问题,于是升级到了稳定版v16.16.0。重新删除一下安装包 rm-rfnode_modulespackage-lock.json 再 npmi,再build就没......
  • 2019-2020 ACM-ICPC Brazil Subregional Programming Contest D Denouncing Mafia
    DenouncingMafia贪心+线段树+\(dfs\)序考虑贪心地每次拿能染色最多的点,每拿走一个点,都会影响其他点的值,如果一个点被染色,则他子树的所有点的贡献值都会-1,因此考......
  • cisco type 7 解密 password
    #include"stdafx.h"#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>charDecPwd[255]={0};charxlat[]={0×64,0×73,0×66,......
  • cisco type 7 密文解密
    '''选择明文攻击根据已有密码和算法计算xlat'''defgetxlat(enc_pw,dec_pw):xlat=[9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,......
  • EntityFrameworkCore 模型自动更新(上)
    话题嗯,距离上一次写博文已经过去近整整十个月,还是有一些思考,但还是变得懒惰了,心思也不再那么专注,有点耗费时间,学习也有点停滞不前,那就顺其自然,随心所欲吧,等哪天心血来潮,想......
  • 文献学习-Better Decision Heuristics in CDCL through Local Search and Target Phas
       OurfirstcontributionistomaximizeinalocalsearchfashiontheassignmenttrailinCDCL,bystickingtoandextendingpromisingassignmentsv......
  • GitHub右上角Watch、Star和Fork的含义
    GitHub项目的右上角都会有三个按钮,分别是Watch、Star和Fork,Watch、Star和Fork是什么意思?码笔记来说说Watch、Star和Fork的意思以及如何使用:Watch、Star和Fork每个GitHub......
  • BigDecimal 舍入模式
    最近写了一个关于金额计算的需求,用户对精度要求比较高所以使用到Bigdecimal,又涉及到范围限制,所以就涉及到如果除不尽是Bigdecimal的舍人模式的问题:舍人模式RoundingMode是......
  • 通过Jenkins构建CI/CD实现全链路灰度
    作者:卜比本文介绍通过Jenkins构建流水线的方式实现全链路灰度功能。在发布过程中,为了整体稳定性,我们总是希望能够用小部分特定流量来验证下新发布应用是否正常。即......
  • CoreDNS实现自定义域名解析
    参考:https://support.huaweicloud.com/usermanual-cce/cce_01_0361.html一、修改CoreDNSHosts配置修改CoreDNS配置文件,将自定义域名添加到hosts中。例如将www.example.......