.NET 微服务——CI/CD(1):Jenkins+Gitee自动构建


CI/CD

持续集成/持续部署,这概念有段时间了,网上有很多八股文,我就不写了。我只说它可以替你做到什么程度:当你需要更新一个版本,只需通过git把代码提交到指定的仓库,然后就可以自动打包、构建镜像、发布、运行。在这几个步骤前后,你还可以通过shell脚本或者其他类似的方法来更好的控制每一个环节。从我角度来看,只是简单应用的话,它其实并不复杂。.net同学们,希望你们考虑在项目中用到它,至少它可以解放手动部署那部分时间。

准备工作

1、准备一个.NET6项目(Core也行):

2、准备一个gitee仓库

3、准备一台服务器(非必要,但建议)

安装Jenkins

首先在docker中运行这段代码(代码来自官网,端口可以自由定义):

docker run \
  -u root \
  --rm \   这项意思是:只要停止运行就删掉这个容器,如果你不需要可以删除
  -d \
  -p 8080:8080 \
  -p 50000:50000 \
  -v jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  jenkinsci/blueocean

没有提前下载镜像也没关系,因为它会自动下载。如下:

接下来访问(如果是云服务器要放通端口访问),短暂等待后会进入这个页面:

Jenkins首次启动会初始化系统,并且生成一个管理员账户,但是密码是输出到日志里的。你可以转到这个目录查看,或者看容器日志:

docker logs [容器id/name]

密码在两行星号中间:

粘贴到刚才的页面点确认,跳入插件下载页,这里有两个选项:推荐安装、自定义安装,任选一个:

再然后进入账户设置页面,可以跳过但不推荐,我建议设置新的:

最后,设置地址:

配置Gitee

因为Jenkins默认不支持Gitee,所以要下载对应插件,按图找到插件管理,搜索Gitee并下载:

下载成功以后,进入系统设置,会出现Gitee相关配置项,填充即可:

需要注意这里的证书。点击添加,选择“Gitee API token”:

这里的APIV5 token,登录gitee账户,设置→私人令牌,生成一个新的就好。

添加好以后,选择证书并点击测试:

看到成功字样,保存退出。

新建工作流

接下来,新建一个“Freestyle”任务。

然后,在当前工作流的“源码管理”这一页,选择Git,输入你仓库的地址:

这里会报错很正常,因为没有配置账户密码。点击新增,选择“账户密码”种类,保存退出后选中它。正常情况下就像这样,不会出红色字体:

然后在下面设置分支,这一项决定Jenkins拉取哪个分支的代码(如果不写就是任意分支):

往下找到“构建触发器”,选择箭头所指项(webhook url先拷贝一下):

选中后会多出很多选项,暂时不用理会,只需要找到下面这一项,并生成一个:

这时候登录你的Gitee,找到准备好的仓库,找到管理→webhooks→新建,选择push和激活,填入复制好的webhook url和webhook token,确认添加:

正常情况下,测试请求是200:

回到Jenkins后台,测试触发器是否可以正常工作。构建前工作区是空的,点击“Build Now”手动触发构建:

再看工作区,已经把仓库代码拖下来了。并且在“构建历史”可以看到刚才的记录:

打开VS2022,提交代码到Gitee(你也可以用命令行):

回到Jenkins后台,构建历史中多了一条记录:

进去查看控制台输出:

是刚才提交的修改没错了。自动构建Get~

下一步是根据代码中的Dockerfile自动打包镜像,我会继续发文的。

文章来源:https://www.cnblogs.com/muchengqingxin/p/15758874.html

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:IIS中应用程序池自动停止,重启报错
下一篇:基于欧姆龙PLC#FinsTcp协议上位机通讯(一)-PLC配置
评论列表

发表评论

评论内容
昵称:
关联文章

.NET 服务——CI/CD1):Jenkins+Gitee自动构建
.NET 服务——CI/CD(2):自动打包镜像
.NET 服务——CI/CD(3):镜像自动分发
.NET 服务——CI/CD(4):避坑和一点经验
使用.NET 6开发TodoList应用(31)——实现基于Github Actions和ACI的CI/CD
使用Hot Chocolate和.NET 6构建GraphQL应用(1)——GraphQL及示例项目介绍
.net core自动构建版本号
GZUpdate自动升级服务 .NET C/S Winform客户端程序自动升级演示
详解ElasticAPM实现服务的链路追踪(NET
1.服务端对端口进行侦听
.NET C#教程初级篇 1-1 基本数据类型及其存储方式
批处理安装服务
Asp.NetCore3.1开源项目升级为.Net6.0
使用Hot Chocolate和.NET 6构建GraphQL应用(2) —— 实体相关功能实现
windows平台的分布式微服务解决方案(1)--UUID全球通用唯一识别码
.NET中大型项目开发必备(1)--UUID全球通用唯一识别码
使用Hot Chocolate和.NET 6构建GraphQL应用(4) —— 实现Query映射功能
使用Hot Chocolate和.NET 6构建GraphQL应用(3) —— 实现Query基础功能
ABP VNext框架基础知识介绍(1)--框架基础类继承关系
Roslyn+T4+EnvDTE项目完全自动化(1) ——类自动生成界面

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码