流水线 自动化部署jenkins maven 之github

摘要:
然后,您可以通过了解systemctlstartjenkins的所有信息的方式自行解决问题。启动并暂时关闭防火墙systemctlstopfirewalld.service(不建议用于生产环境)。在上述安装之后,默认的web服务端口是8080端口192.168.0.100:

本文的开头先说一下环境的准备:

运行环境:Centos 7

maven 安装  http://maven.apache.org/

java jdk 安装 推荐使用open jdk  http://openjdk.java.net/

 以上的安装和运行开发 需要有开发经验的老同志 可以无阻力的玩,如果是新手,我建议先吧上边搞通 后 在往下来

我们 打开  jenkins 官网  https://www.jenkins.io/   如果所在地区无法打开 请自行解决,懂得都懂。

流水线 自动化部署jenkins maven 之github第1张流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第3张流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第5张流水线 自动化部署jenkins maven 之github第2张

如果上述 因为网络问题无法安装,则可以通过懂得都懂的方式自行解决

systemctl start jenkins 启动

临时关闭防火墙 systemctl stop firewalld.service(生产环境不建议使用)

上述安装完成后 默认的web服务端口为 8080端口

192.168.0.100:8080

vi /var/jenkins_home/secrets/initialAdminPassword 查看访问密码

Unlock Jenkins page流水线 自动化部署jenkins maven 之github第2张

Copying initial admin password流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第11张流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第13张流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第15张流水线 自动化部署jenkins maven 之github第2张

可以创建一个管理员用户  也可以继续使用 admin账户 我这里为了验证流通性 所以直接使用默认的账户了

登录之后 

流水线 自动化部署jenkins maven 之github第17张流水线 自动化部署jenkins maven 之github第2张

把需要的github maven 插件都给装上,这里  如果是新手  建议把所有插件都装上,防止后续配置过程中 出现功能缺少的问题。

流水线 自动化部署jenkins maven 之github第19张流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第21张流水线 自动化部署jenkins maven 之github第2张

找到全局凭据  添加凭据

我这里使用的github 所以需要你所在的github仓库来一个  sshkey 来支持

ssh-keygen -t rsa -C "your_email@example.com“ 三次回车键 会显示文件所在的路径

流水线 自动化部署jenkins maven 之github第23张流水线 自动化部署jenkins maven 之github第2张

id和描述 随便填写  这里为了区分

username 你的  github 邮箱

输入 私钥

Passphrase 当前登录用户的密码 这里用来确认的  还有就是  保存好 你生成的sshkey 公钥和私钥

记得在你的 github 里也设置下 github端  公钥 本地私钥  具体github公钥添加方式 我这里就不多说了  自行 google 解决哈。

Manage jenkins >Global Tool Configuration

里边有  mvn 和 jdk 的目录配置    如果加到过环境变量可以执行的可以忽略

尽情的来吐槽吧 宝贝们

流水线 自动化部署jenkins maven 之github第25张流水线 自动化部署jenkins maven 之github第2张

上图的步骤 非常重要 后续我们会用到这个凭据的。

接下来  我们开启  建立模式

dashboard 新建item

流水线 自动化部署jenkins maven 之github第27张流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第29张流水线 自动化部署jenkins maven 之github第2张

构建一个maven版本项目  点击  确认

打开编辑页面 

流水线 自动化部署jenkins maven 之github第31张流水线 自动化部署jenkins maven 之github第2张

描述信息 相当于备注 自行填写

图中的 gitee链接 如果没有 可以忽略

源码管理:

流水线 自动化部署jenkins maven 之github第33张流水线 自动化部署jenkins maven 之github第2张

Repository URL:github ssh git 链接

Credentials:选择凭据  我们在开始的时候  添加的全局凭据  记得在 github远程仓库里也设置好哦。

Branches to build: 构建分支  可选择的有  master develop main 现在 github的 主仓库为main 所以  我这里设置的是 */main 

流水线 自动化部署jenkins maven 之github第35张流水线 自动化部署jenkins maven 之github第2张

上图为构建触发器:

GitHub hook trigger for GITScm polling 触发 git scm 

Poll SCM: H/2 * * * *(每两分钟 轮询一次 具体语法可以通过其他途径获知)

上述的两个选项 最终的运行是  定时去轮询 查看 当前 本地的代码 scm和 远程指定分支的scm一致不一致 如果一直 则不构建  继续下一下执行  以此类推。

构建环境 

流水线 自动化部署jenkins maven 之github第37张流水线 自动化部署jenkins maven 之github第2张

构建前 删除工作目录 这里可以不用勾选  我是为了看文件变动才选择的。

Pre Steps  此处忽略

流水线 自动化部署jenkins maven 之github第39张流水线 自动化部署jenkins maven 之github第2张

上图为  构建  文件和参数  跳过 test

这里先 点击保存  构建一下 看看情况。

先说一下 各种错误的情况吧

拉取 失败 检查 git远程仓库和 本地的配置 还有 凭据 建议使用 suername sshkey private 

另外一种错误是权限问题 给  文件夹加权限

还有一种问题是 mvn配置有问题 记得好好检查一下。还有 构建参数,建议在开发时的电脑上先跑一边 确保clean install package 等命令执行后都没有问题

切记  mvn springboot 项目  记得设置好包下的启动类 不然会提示 没有主体清单 导致跑不起来,很多问题再dev没问题,生产环境 error 警告一大堆.

http://192.168.0.14:8080/job/demomvn/11/console

demomvn 创建的项目名称 11 为构建的次数  cosnole 控制台输出,无论是你的构建成功  还是构建失败 console这里的输出会有很详细的错误信息的,多看多搜索 可以解决的,我这里折腾了  将近  20小时搞定了。构建次数50-60次 。

不要以为到这就结束了啊  还没有呢。

我以为构建成功就ok 了  可惜不是 构架成功  得让项目跑起来呀,是不是。

下面  我们设置 构建成功后 执行的脚本

post steps

Run only if build succeeds   构建成功后 执行

流水线 自动化部署jenkins maven 之github第41张流水线 自动化部署jenkins maven 之github第2张

流水线 自动化部署jenkins maven 之github第43张流水线 自动化部署jenkins maven 之github第2张

一定要按照上述格式填写脚本  不然你可能会遇到 构建无法结束 mvn jar 包 无法后台运行等问题

#!/bin/bash
/opt/web/demo/demomvnscript/stop.sh
/opt/web/demo/demomvnscript/replace.sh
echo "Execute shell Finish"
BUILD_ID=dontKillMe nohup /opt/web/demo/demomvnscript/startup.sh &

stop.sh 这里是  结束 进程的

#!/bin/bash
echo "Stop Procedure : demomvn.jar"
pid=$(ps -ef | grep java | grep demomvn.jar | awk '{print $2}')
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]; then
  kill $pid
fi

结束demomvn.jar 这个进程

replace.sh  记得给目标文件夹权限 chmod 777 R dir

#!/bin/bash

 cp /var/lib/jenkins/workspace/hub/target/demomvn.jar /opt/web/demo/api

复制到 执行目录

replace.sh 

java -jar /opt/web/demo/api/demomvn.jar

运行 jar包。

到这里 我们的  构建成功后的脚本就成功了。

结合构建  可以再 构建成功后 自动运行项目

再 github 里  修改 删除  增加  等操作  轮询到代码有变动时  会自动拉取下来 

按照前边 的 构建文件和参数 构建可 执行的 jar 文件  

在构建完成后 执行我们编写好的脚本。

就这样子,自动化部署就完成了  我这里时因为 没有 服务器  所以  在 虚拟机里玩的

轮询  发现代码有变动 构建

也可以 使用 钩子函数 一旦有有变动 立马 触发 拉取代码   构建  然后 执行。

综合上述我们发现。只要部署好,后面的工作就好多了。摆脱了传统的 复制替换文件 手动 开启停止服务等操作。

到这里 就告一段落了,如有错误之处 希望在评论区里指出。

可以私信我 csdn  或者 博客园 或者 邮箱 xiaohe@chnhonker.com(不处理垃圾邮件)

免责声明:文章转载自《流水线 自动化部署jenkins maven 之github》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇37、Android手势识别当析构函数遇到多线程 ── C++ 中线程安全的对象回调下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

EF架构~关系表插入应该写在事务里,但不应该是分布式事务

回到目录 这个标题很有意思,关系表插入,就是说主表和外表键在插入时,可能会有同步插的情况,如在建立主表时,扩展表需要同步完成数据的初始化工作,而对于多表插入时,我们为了保证数据的一致性会针它写在事务中,而对于.net中的事件,它在一些情况下,会不那么单纯,对于ef和linq to sql来说,你的事务如果出现多次提交动作(submitchange | sa...

hadoop商业版本的选择介绍

记得刚接触到hadoop的时候跟大部分人一样都会抱怨hadoop的安装部署问题,对于一个新手来说这这的是个头疼的问题,可能需要花费一整天的时间才能把分布式环境安装配置好。在刚接触hadoop的一段时间里,可以说对于hadoop的理解一直都是停留在相对较肤浅的层面。后来随着自己的不断摸索以及向圈内的前辈大神请教交流(主要是向大神请教学来的),自己对于hado...

细说SVN集中式版本控制器

svn全称Subversion,实现多人开发同一个项目时,对源代码进行管理的工具。在公司里边,一个项目是由多人同时在开发,大家在本地自己电脑开发php代码,完毕后就commit上传给服务器运行。  如图:多人开发同一个php程序文件(重叠部分代码),在做commit提交给服务器的时候,要造成文件彼此覆盖的问题。 svn作用之一:解决文件覆盖,协作多人开发同...

mysql安装和遇到的问题处理

遇到需要在新系统上安装MySQL的事情,简单记录一下过程。 声明:最好的文档是官方文档,我也是看的官方文档,只是中间遇到点问题,记录一下出现的问题和处理方式。贴一些官方文档地址。 用tar包的安装方式:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html 用yum源等其他安装方式:...

微信小程序报错request:fail url not in domain list

https://wx.qlogo.cn 生成分享码,里面有微信头像,需要把微信的地址配到小程序平台。 如果用到自己的cdn,需要把自己的cdn也配进去。 开发者工具中,因为不校验,所以可以正常生成canvas图片。真机中,如果没有配置地址,就会出问题。 开发者工具中,默认不校验域名。可以开启校验模式看看效果。...

Postgresql安装

安装postgresql数据的主要两篇参考文档链接: http://www.cnblogs.com/marsprj/archive/2013/02/08/2893519.html http://www.cnblogs.com/mchina/archive/2012/06/06/2539003.html 1、下载指定版本的postgresql,这里下载pos...