1.新建项目提交到Git。
这里的git项目可以用GitLab也可以各大平台提供的,比如码云和coding。或者自己搭建个Git服务器。用vs2019新建个webapi项目。然后提交到git服务器。这里我用的是码云
2.安装并运行Jenkins
这里我的是centos7,前提是需要安装好java的jdk 1.8+
Jenkins官网最新稳定版: https://pkg.jenkins.io/redhat-stable/
windows下载:https://jenkins.io/download/
1)下载
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
(2)导入秘钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
(3)安装
yum install jenkins
(4)配置端口
Jenkins的默认端口是8080,如果要修改的话使用以下命令,我这里修改为8070:
vim /etc/sysconfig/jenkins
jenkins_port:8070
(5)启动Jenkins
nohup java -jar /usr/lib/jenkins/jenkins.war --httpPort=8070 &
然后通过浏览器IP:Port查看Jenkins界面进行配置,首先需要输入系统自动生产的密码:
复制图片上的路径,输入命令: cat 图片上的路径,如:cat /var/lib/jenkins/secrets/initialAdminPassword,复制密码粘贴确认就可以,之后进入Jenkins选择插件界面:
选择安装默认插件。
3.安装.Net Core SDK 3
推荐按照官方地址操作https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-centos7
sudo yum -y install dotnet-sdk-3.1
安装完成之后输入命令 : dotnet --version
验证安装是否安装成功
4.配置Jenkins
(1)新建一个自由风格的软件项目
(2)填写源代码Git地址,用于Jenkins拉取代码:
添加添加可以添加管理仓库的用户和密码,用户拉取源代码。
可是设置定制构建执行代替手动执行,这里的设置是每5分钟发布一次,其实没必要,手动点构建更灵活。
构建环境部分,可以指定发布的一些选项,就是发布之前删除之前的文件等
构建。这里就是把文件获取到最新之后要执行的项目的编译,发布和启动网站。
执行的shell脚本
kill -9 `lsof -ti:5000` dotnet restore dotnet build dotnet publish BUILD_ID=DONTKILLME nohup dotnet ${WORKSPACE}/bin/Debug/netcoreapp3.1/publish/Apitest.dll &
其中shell里面的第一行,第一次构建的时候不需要,因为此时网站还没发布启动,不存在占用5000端口的程序,如果执行的话会造成shell中断。构建不成功。
BUILD_ID=DONTKILLME 这句话的意思是Jenkins启动之后不要kill掉网站的进程。最开始没有加这个导致构建之后,看着网站明明启动了就是访问不了的假象。
在dotnet 之前加nohup的意思是不占用终端,在后台进程的形式启动网站,避免一直占用终端,造成构建占用超时。
由于网站启动后会占用5000端口,再次发布时会造成端口占用,网站启动不了,所以有了第一句 kill -9 `lsof -ti:5000` 每次发布时解除端口占用。
这样构建过程就完成了。以后每次有修改,只要把代码提交到git服务器,点击构建就能实现代码的自动拉取同步,程序的自动发布,网站的启动。
输入地址 http:localhost:5000 就能直接访问,当然也可以运用nginx反向代理进行绑定访问。