ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jenkins + Gitee + .Net6 实现持续集成与持续交付(CI/CD)

2021-12-10 17:03:16  阅读:192  来源: 互联网

标签:CI 项目 net6demo pub Gitee Net6 Jenkins


目标

image
创建一个.Net6项目,结合Jenkins、Gitee实现CI/CD (当编写完代码,并提交到Gitee仓库之后,Jenkins自动帮我们测试,打包,发布项目)

关于Jenkins,Docker 的环境搭建可以参考我的上一篇文章
https://www.cnblogs.com/kizuna1314/p/15660880.html

步骤

  1. Gitee创建一个.Net6项目的仓库
  2. Jenkins创建一个自由风格的软件项目
  3. 配置Jenkins和.Net6项目的关联
  4. 创建.Net6项目,编写接口代码,本文重点主要CI/CD,所以选择创建轻量的Minimal API项目
  5. 提交Gitee,查看CI/CD效果

创建项目

Gitee准备一个项目

image

新建一个自由风格的软件项目

image

配置构建需要的参数

image
若出现操作过程中出现下图问题,并且Gitee信息填写正确,原因可能是项目需要开源才能访问到
image
image

image

选择添加的用户凭证

image

配置webHooks

勾选并复制URL

image

Gitee配置webHooks

image

填写上一步骤拷贝的URL

image

点击生成Gitee WebHook 密码

image

粘贴到WebHook 密码/签名密钥文本框中

image

验证Jenkins是否能拉取提交的内容

提交了一段代码
image

成功拉同步了Gitee的更改,接下来只需要把每次同步过来的代码发布即可

image

下载.Net6 运行时(由于我之前安装过,所以直接显示100%)

官网下载地址:https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-centos

Centos7系列版本可直接运行下面命令下载

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

image

查看安装
dotnet --list-sdks

image

安装supervisor
yum install -y supervisor

image

查看所有 supervisor服务状态
supervisorctl status

image

编写一个后台进程(.ini)文件
# 创建并编辑一个.ini文件,我这里以 "net6demo" 为例
 vim /etc/supervisord.d/net6demo.ini
文件内容
# ![image](https://www.icode9.com/i/l/?n=20&i=blog/1289480/202112/1289480-20211210165543840-343976883.png)

[program:net6demo]
command=dotnet net6test.dll --urls http://0.0.0.0:5000 # 这里改成实际的.dll文件 以及需要暴露的端口
directory=/pub   # 这里是发布的文件路径,所以 需要在外面再创建pub文件夹
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/logs/net6test.out.log
stderr_logfile=/logs/net6test.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d

image

创建/pub、/logs 文件夹,并给予读写权限
mkdir /pub /logs
chmod -R 777  /pub /logs
启动supervisor后台进程
supervisord -c /etc/supervisord.conf

image
查看后台后台守护进程状态

supervisorctl status

进程名称需要记下来,因为后面我们重新发布的时候需要重启这个守护进程
image

配置ssh构建实现自动拉取并部署项目

image

选择增加构建步骤

image

编写shell脚本
echo------------stopapp------------------
supervisorctl stop net6demo:net6demo_00
echo------------publish------------------
cd /app/net6test/net6test
dotnet publish -o /pub
echo------------delcode------------------
cd /app
rm -rf *
echo------------online------------------
supervisorctl start net6demo:net6demo_00
编辑完内容之后,保存

image

立即构建,看看是否拉取并发布了

image

查看构建明细

image

我们可以看到,项目已经自动发布到/pub文件夹下面了
image

访问接口

服务器本机访问

image

web访问

image

更改项目内容,提交Gitee后看看是否会自动发布

image
几秒钟以后,服务器上的程序已经自动更新了
image

查看一下控制台

image

以上就是.Net6结合Jenkins实现CI/CD的全过程,由于是重点介绍CI/CD 为了让大家更好的上手,所以项目编写的比较简陋,大家可以根据实际情况自由扩展

标签:CI,项目,net6demo,pub,Gitee,Net6,Jenkins
来源: https://www.cnblogs.com/kizuna1314/p/15672682.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有