jenkins+springboot自动化构建部署




前言

个人的学习使用


提示:以下是本篇文章正文内容,下面案例可供参考

一、jenkinsci/blueocean是什么?

持续交付(CD)Pipeline的 复杂可视化 ,可以让您快速直观地理解管道状态。

Pipeline 编辑器 - 引导用户通过直观的、可视化的过程来创建Pipeline,从而使Pipeline的创建变得平易近人。

个性化 以适应团队中每个成员不同角色的需求。

在需要干预和/或出现问题时 精确定位 。 Blue Ocean 展示 Pipeline中需要关注的地方, 简化异常处理,提高生产力

本地集成分支和合并请求, 在与GitHub 和 Bitbucket中的其他人协作编码时实现最大程度的开发人员生产力。

二、使用步骤

1.jenkins的搭建

  • 拉取镜像
docker pull jenkins/jenkins
  • 创建卷,采用外部文件挂载的形式挂卷,也就是对应的文件夹
    /var/jenkins_home
    赋权
chown -R 1000:1000 jenkins_home/
  • 启动jenkins
docker run -d --name myjenkins \
  -p 8070:8080 \
  -p 50000:50000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /usr/local/java/jdk1.8.0_241:/usr/local/java/jdk1.8.0_241 \
  -v /usr/local/maven:/usr/local/maven \
  -v /var/jenkins_home:/var/jenkins_home \
  --privileged=true \
  jenkins/jenkins
  • 查看日志
docker logs -f myjenkins

这个是登录的密码。也可以用cat命令查看
cat /var/jenkins_home/secrets/initialAdminPassword
在这里插入图片描述
入门
在这里插入图片描述
jenkins插件管理
在这里插入图片描述
创建用户
在这里插入图片描述
实例配置
在这里插入图片描述
配置完成后重启jenkins。

2.插件管理

  • 配置国内插件源
    在这里插入图片描述
    拉到最下方修改插件源
    在这里插入图片描述
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
  • 下载插件publish over ssh(有些版本不支持,存在安全隐患)
    在这里插入图片描述
  • 下载插件Maven Integration plugin
    在这里插入图片描述
    在这里插入图片描述

3.UI设置

  • 下载插件simple theme。
    主题官网:http://afonsof.com/jenkins-material-theme/
    在这里插入图片描述
    颜色:http://afonsof.com/jenkins-material-theme/dist/material-blue.css
  • 更新配置在这里插入图片描述
    此时保存之后颜色已经发生变化。
    在这里插入图片描述
  • 安装green balls插件 编译成功的图标会从蓝色变成绿色

4.系统设置

配置SSH服务器,方便后续的打包构建上传jar包到远程服务器
在这里插入图片描述

5.全局工具配置

  • maven配置
  • 注意:配置指定的setting文件的时候,里面镜像源更换为阿里鱼镜像源。并且仓库位置需要授权。可对整个maven目录授权
chown -R 1000:1000 /usr/local/maven

在这里插入图片描述

  • JDK配置
    在这里插入图片描述
  • mavn配置
    在这里插入图片描述

5.jenkins时区的设置

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

在这里插入图片描述

6.jenkins权限管理

  • Role-based Authorization Strategy 用户项目权限控制
  • Authorize Project 允许对项目级别进行授权
  • 修改授权策略
    在这里插入图片描述
  • 配置角色等

7.jenkins常用插件

插件名称插件说明
SSH使用SSH协议在远程服务器上执行Shell命令
Publish Over SSH通过SSH将打包好的应用传输到远程服务器
Git将Git工具与Jenkins集成在一起
Git ParameterGit参数化,自动获取当前Git地址所有分支,并提供下拉选项
GitLab允许GitLab触发Jenkins构建并在GitLab UI中显示其结果
Extended Choice Parameter支持多选,读取文件作为值,支持pipeline
Role-based AuthorizationStrategy用户项目权限控制
Authorize Project允许对项目级别进行授权
Maven IntegrationMaven环境深度集成
Copy Artifact从其他项目中拷贝 后一次构建的项目包
nodejs前端环境打包

8.jenkins的任务配置

在这里插入图片描述
在这里插入图片描述
此处勾选provide Node为vue项目构建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#前端
pwd
npm install 
rm -rf ./dist/*
npm run build
#后端
#!/bin/bash
cd /data/service
module=boss-bsmc
moduleVersion=${module}-1.0
appgz=${moduleVersion}-bin.tar.gz
if [[ -e "$appgz" ]]; then
   tar zxvf $appgz
else 
  echo "文件不存在!"
  exit 1
fi

sleep 2

cd $moduleVersion/target
target_dir=`pwd`
pid=`ps ax | grep -i ${module} | grep ${target_dir} | grep java | grep -v grep | awk '{print $1}'`
cd /data/service/$moduleVersion/target
if [[ -z "$pid" ]] ; then
  echo "No ${module} running..."
  BUILD_ID=DONTKILLME
  exec startup.sh
else 
  echo "The ${server_name}(${pid}) is running..."
  kill ${pid}
  sleep 1
  BUILD_ID=DONTKILLME
  exec startup.sh
fi

vue项目流水线demo

node {
   //def mvnHome
   stage('checkout') { // for display purposes
      checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab', url: 'http://10.22.50.121:8899/ers-group/test.git']]])
   }
   stage('npm打包') {
        //使用NodeJS的npm进行打包
        nodejs('node'){
            sh '''
                npm install
				rm -rf ./dist/*
                npm run build
               '''
        }
        
    }
   stage('test') {
      echo 'test...'
   }
}

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白努力学java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值