.NET6 微服务——CI/CD(1):搭建Jenkins并实现自动构建

时间:2024-03-17 17:32:54

CI/CD

它的意思是 持续集成/持续部署,这也不是新概念。那些八股文就不写了,说话的方式简单点:如果成功搭建CI/CD环境,当你需要迭代线上程序时,只需通过git提交代码就可以,其他什么都不用做。是不是很爽?这样你就拥有了快速迭代的能力,微服务大环境下,这也是必要的。

准备工作

1、准备一个.NET6项目:

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

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

容器跑起来了,访问8080:

jenkins首次启动会进入安装向导,并且自动生成一个管理员账户,但是密码是输出到日志里的。因为我是通过docker启动的,所以要查看容器日志,语句:

docker logs [容器id/name]

密码在两行星号中间:

粘贴到刚才的页面点确认,进入下个页面:

页面给出了插件安装的两个选项:推荐安装、自定义安装,随意选一个即可。

安装结束后,进入账户设置页面:

可以跳过并继续使用admin账户,也可以自定义一个,建议自定义一个好记的。

最后设置一下地址就可以结束安装向导了:

添加并配置Gitee

Jenkins默认不支持gitee,需要下载一个gitee插件才可以,找到插件管理搜索gitee并下载即可:

然后进入系统设置,配置gitee:

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

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

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

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

新建工作流

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

在“源码管理”这一页,选择Git,输入你仓库的地址:

这里会报错很正常,因为没有配置账户密码。点击新增一个证书,种类选账户密码,然后选择它。正常情况下就像这样:

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

然后就是构建触发器,选推送代码到gitee时触发(这个url先拷贝出来):

打勾以后,会多出很多选项,其他的都不用管,只需要在这里生成一个token就可以:

然后回到gitee仓库,找到管理→webhooks→新建,填入准备好的地址和token:

添加成功后看下测试请求的结果,正常情况下是200:

接下来测试触发器是否可以正常工作。构建前工作区是空的:

手动构建后:

现在提交修改代码到gitee,看能否自动构建。我就直接用vs自带工具提交了:

然后转到jenkins后台,可以看到多出一个构建记录:

戳进去看控制台输出:

的确是我刚才提交的修改,自动构建成功。

下一步是拉到代码的同时,根据代码中的Dockerfile自动打包成镜像并且运行,下一篇继续。