.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自动打包镜像,我会继续发文的。