.netcore 3全自动化发布部署Jenkins+GIT

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 &
View Code

其中shell里面的第一行,第一次构建的时候不需要,因为此时网站还没发布启动,不存在占用5000端口的程序,如果执行的话会造成shell中断。构建不成功。

BUILD_ID=DONTKILLME 这句话的意思是Jenkins启动之后不要kill掉网站的进程。最开始没有加这个导致构建之后,看着网站明明启动了就是访问不了的假象。

在dotnet 之前加nohup的意思是不占用终端,在后台进程的形式启动网站,避免一直占用终端,造成构建占用超时。

由于网站启动后会占用5000端口,再次发布时会造成端口占用,网站启动不了,所以有了第一句 kill -9 `lsof -ti:5000` 每次发布时解除端口占用。 

 这样构建过程就完成了。以后每次有修改,只要把代码提交到git服务器,点击构建就能实现代码的自动拉取同步,程序的自动发布,网站的启动。

输入地址 http:localhost:5000 就能直接访问,当然也可以运用nginx反向代理进行绑定访问。

 

 

 

 

posted @ 2020-04-26 14:47  不是玩的  阅读(832)  评论(0编辑  收藏  举报