码云通过Jenkins自动部署项目(Spring Boot为例)

安装Jenkins

安装

建议去官网看安装方法,这里顺便给出Ubuntu和CentOS的,我这里没有服务器,接下来的全程都是在Deepin虚拟机搭配钉钉内网穿透进行操作

  • Ubuntu:

    wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
    sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' 
    sudo apt-get update
    sudo apt-get install jenkins
    
  • CentOS:

    sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    yum install epel-release # repository that provides 'daemonize'
    yum install java-11-openjdk-devel
    yum install jenkins
    

初始化

默认端口是8080,在自己电脑上打开浏览器通过ip:8080即可访问,初次打开需要输入临时密码,按照指定路径复制过来即可

Jenkins欢迎页面

继续之后安装推荐的插件→创建管理员账户→***→初始化成功

创建管理员账户

上边都是一些简单的傻瓜式操作,安装成功之后只需要再安装一个gitee插件即可满足项目需求,照着下图安装即可

安装插件-1

安装插件-2

到这里是彻底初始化完成

自定义端口号和运行账户:

因为8080端口号容易被占用,所以这里把端口号改成9999

  • Ubuntu下配置文件是/etc/default/jenkins

    修改

    # 修改用户为root是为了防止之后运行命令时缺少权限
    JENKINS_USER="root"
    # 修改端口号防止默认8080端口被占用
    HTTP_PORT=9999
    
  • CentOS则是/etc/sysconfig/jenkins

    # 修改用户为root是防止之后运行命令缺少权限
    JENKINS_USER="root"
    # 修改端口号防止默认8080端口被占用
    JENKINS_PORT="9999"
    

修改完成后重启服务即可service jenkins stop

配置项目

在Dashboard中选择新建项目,新建项目时选择Freestyle project,项目名随便

新建项目

General选项卡下边都可以空着

在这里插入图片描述

源码管理则需要选择

源码管理

  • 注意在Additional Behaviours中添加仓库的本地子目录,这个是设置项目拉到服务器上的目标文件夹

  • 注意需要添加Gitee账号,我第一次的时候选择的是Gitee令牌,但是不知道什么原因没办法添加上去,之后就选择了账号密码的方式,ID我填的就是Gitee的用户名,不清楚填其他的可不可以

添加Gitee账户

构建触发器,直接把说明写在图上了

构建触发器

Gitee上的WebHook设置,在仓库的管理选项卡→仓库挂件→WebHooks

Gitee设置WebHooks

构建环境选项卡不用管,空着就好

构建选项卡添加执行shell(Execute Shell),然后自己写自己项目的执行代码即可,下边给出我的执行代码

BUILD_ID=dontKillMe
# ↑↑↑这个是防止命令没有执行完,shell就被终止了
# jar包名字,改成你自己的
jarname='jar包-1.0.0'
# jar包所在目录!!!!不是项目路径!!!!
cd /home/项目的本地子目录/

# 判断jar包本次是否更新,如果更新则重新部署,否则不部署
if_jar_changed=`git diff --name-only HEAD~ HEAD $jarname.jar`
if [ -z "$if_jar_changed" ]; then
echo '本次更新没有重新打包jar,无需部署'
exit 0
fi
echo 'jar包变更记录:' $if_jar_changed

# 尝试获取当前正在运行的服务进程pid
pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`
echo $pid
# 若当前服务正在进行则kill掉
if [ -n "$pid" ]; then
kill $pid
fi

# 执行新的进程
nohup java -jar $jarname.jar >>server.log 2>&1 &
echo $! > server.pid

注意这里我写的并不是太好,只是针对我们的项目写的

只有在本次推送的代码中重新打包生成了jar才会去真正的部署,其他的情况下检测到jar文件没有变动则直接退出

当然这样的弊端就是如果某次删除了jar就会出现部署失败,但我写烦了,懒得改了

到这里就配置完成了,下次再提交代码就会触发自动部署

完全卸载Jenkins(顺便写在这)

移步如何在ubuntu上卸载Jenkins

# 服务,不建议这么用,我用了,卸了重装之后挺麻烦的
# apt remove jenkins
# 安装包
apt remove --auto-remove jenkins
# 配置和数据
apt purge jenkins
apt purge --auto-remove jenkins

题外话,钉钉内网穿透:Pierced

好用是真的好用,但文档是真的拉,甚至没说怎么运行,这里给出运行的命令

  • Windows下:
cd windows_64
ding -config=ding.cfg -subdomain=abcde 8080
  • Linux下
cd mac_64
chmod 777 ./ding
./ding -config=./ding.cfg -subdomain=abcde 8080

其中subdomain是子域名,后边跟的是映射到本地的端口号,如例子中就会转发↓↓↓

http://abcde.vaiwan.com → 127.0.0.1:8080

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值