当前位置: 首页 > news >正文

jenkins一键部署github项目

个人目前理解jenkins部署分为两步:

  1. 构建项目,如生成jar
  2. 自动执行sh脚本
    如果没有jenkins,我们可能需要将jar移动到服务器,然后执行java -jar跑程序,jenkins可以替代我们执行这些东西,下面从0开始(仅供参考,也是个人记录)

为啥不用docker安装jenkins,因为坑多,下面步骤,如果你们系统有jdk,mvn,git环境,就自动跳过
文末提供演示案例

安装jdk1.8环境(最新版本的jenkins需要jdk11+)

cd /usr/localmkdir javacd javawget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz"tar  -zxvf  jdk-8u141-linux-x64.tar.gzrm -rf jdk-8u141-linux-x64.tar.gzvim /etc/profileexport JAVA_HOME=/usr/local/java/jdk1.8export PATH=$PATH:$JAVA_HOME/binsource /etc/profilejava -versionecho $JAVA_HOME

安装mvn环境

cd /usr/localmkdir mavenwget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz --no-check-certificatetar -zxvf apache-maven-3.6.1-bin.tar.gzrm -rf apache-maven-3.6.1-bin.tar.gzcd /usr/local/maven/mkdir repovim conf/settings.xml #修改配置文件,找到如下修改
<localRepository>/usr/local/maven/repo</localRepository><mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf></mirror>export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1 export PATH=$MAVEN_HOME/bin:$PATHsource /etc/profilelsmvn -vecho $MAVEN_HOME

安装git

yum install git -y

安装jenkins环境

#安装jenkins(最新版的jenkins需要jdk11,所以需要对应的版本信息)
wget https://repo.huaweicloud.com/jenkins/redhat-stable/jenkins-2.346.3-1.1.noarch.rpmrpm -ivh jenkins-2.346.3-1.1.noarch.rpmecho $JAVA_HOME#candidates添加JAVA_HOME路径
vim /etc/init.d/jenkins    vim /etc/sysconfig/jenkins#将JENKINS_USER="jenkins 改为 JENKINS_USER="root"
systemctl start jenkins#设置jenkins开机自启动
systemctl enable jenkins.service#查看jenkins运行状态
systemctl status jenkins.service# cat /var/lib/jenkins/secrets/initialAdminPassword
#项目路径 /var/lib/jenkins/workspace/

配置jenkins

找到 Global Tool Configuration,这里的配置,都是自己安装的,不依赖jenkins,这样个人觉得可控

jenkins需要安装maven插件,在plugin那里,自行百度一下
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

测试jenkins一键部署

准备环境:
centos7
jenkins
java项目(github地址,由于github网络较差,我使用giteegitee地址,配置是一样的)
其他,docker,docker-compose(安装docker,docker-compose),模拟依赖mysql,redis

  1. 新建项目
    在这里插入图片描述2. 配置
    账号密码自己搞一下,我比较懒
    在这里插入图片描述在这里插入图片描述

附上脚本

说明:先用mvn编译,再把脚本移到 /home/compose下,执行 start.sh
dos2unix Window文件转linux文件,没有就yum installl 下载一个
cp 里面有个$JOB_NAME,这个是jenkins的环境变量,也就是项目名称
jenkins会把项目文件放在/var/lib/jenkins/workspace里面
附:这套流程下来,会遇到各种问题,道友们自己加油解决,本身流程是没有问题的

echo "构建开始"
mvn clean install -Dmaven.test.skip=true
echo "构建成功"
echo '初始化部署脚本'
rm -rf /home/compose
mkdir /home/compose
chmod 777 /home/compose
cp /var/lib/jenkins/workspace/$JOB_NAME/src/main/docker/docker-compose.yml /home/compose/
cp /var/lib/jenkins/workspace/$JOB_NAME/src/main/docker/start.sh  /home/compose/
cp /var/lib/jenkins/workspace/$JOB_NAME/src/main/docker/Dockerfile  /home/compose/
cp /var/lib/jenkins/workspace/$JOB_NAME/target/compose-demo-1.0-SNAPSHOT.jar /home/compose/
echo '初始化脚本完成'
echo '执行shell脚本'
cd /home/compose
echo 'dos2unix格式化sh脚本'
dos2unix start.sh
sh start.sh
echo 'shell脚本执行成功'

道友们加油
成功结果:
在这里插入图片描述
jenkins pipeline-script参考下篇文章

http://www.lryc.cn/news/131634.html

相关文章:

  • 岩土工程安全监测隧道中使用振弦采集仪注意要点?
  • 第四章nginx组件精讲
  • LlamaGPT -基于Llama 2的自托管类chatgpt聊天机器人
  • 常见的跨域解决方案
  • 分布式websocket解决方案
  • 奥威BI财务数据分析方案:借BI之利,成就智能财务分析
  • Android12之com.android.media.swcodec无法生成apex问题(一百六十三)
  • Xcode build和version
  • 前端面试:【原型链】代码世界的家族传承
  • 2D应用开发是选择WebGL 还是选择Canvas?
  • Android Framework 常见解决方案(20)UDP广播无效问题
  • VINS-Mono中的边缘化与滑窗 (4)——VINS边缘化为何是局部变量边缘化?
  • 真·VB.NET彻底释放Interop.Excel对象
  • 记录hutool http通过代理模式proxy访问外面的链接
  • Selenium 自动化 | 案例实战篇
  • 前端技术栈es6+promise
  • windows vscode使用opencv
  • json文件读取数据报错 AttributeError: ‘str‘ object has no attribute ‘items‘
  • 1、Spring_IOC
  • Socks5、IP代理在爬虫开发与HTTP通信中的应用
  • 重新认识小米
  • react之react-redux的介绍、基本使用、获取状态、分发动作、数据流、reducer的分离与合并等
  • 滑块验证码-接口返回base64数据
  • 智能文件改名,一键与上上级目录名称同步,让文件整理更加便捷
  • RK3399平台开发系列讲解(内核调试篇)Valgrind使用案例
  • 07_缓存预热缓存雪崩缓存击穿缓存穿透
  • 常见前端基础面试题(HTML,CSS,JS)(三)
  • CSS(JavaEE初阶系列14)
  • 学习笔记230810--get请求的两种传参方式
  • 游戏找不到msvcr100.dll解决方法,常见的三种解决方法