# jenkinsTest **Repository Path**: smallxin/jenkinsTest ## Basic Information - **Project Name**: jenkinsTest - **Description**: SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2018-11-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jenkinsTest #### 项目介绍 SpringBoot+Git+Jenkins实现简易的持续集成和持续部署或SpringBoot+Git+Docker+Jenkins实现简易的持续集成和持续部署 #### 软件架构 使用软件jenkins2.1,tomcat8.5 ,idea2018,maven3.5,jdk8,natapp(这个有免费的) 使用前请先会jenkins,docker的基本使用。否则无法成功。 #### 使用说明 看图说话 ![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/102946_fbf30d95_1325111.png "分析图.png") 简单理解: 1. push代码到Github触发WebHook。(本篇使用gitee) 2. Jenkins从仓库拉去代码 3. mavem构建项目 4. 代码静态分析 5. 单元测试 6. build镜像 7. push镜像到镜像仓库(本篇使用的镜像仓库为网易镜像仓库) 8. 更新服务 #### 安装教程 安装jenkins(如果不会使用jenkins,可先看看jenkins的使用) - 初始化密码。可根据提示输入密码 - 选择插件。进入用户自定义插件界面,选择第二个(因为我们本次构建使用的为Pipelines ) - 安装插件。 - 配置用户名和密码。 - 系统管理-》全局工具配置 配置Git,JDK和Maven - 安全配置。系统管理-》全局安全配置,勾选Allow anonymous read access(有可能是中文,自己注意看),取消防止跨站点请求伪造。 ![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/103759_60f52be6_1325111.png "安装图.png") 勾选与Pipelines 相关的插件 ![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/103212_de6466db_1325111.png "安装图.png") - 新建任务。新建任务-》流水线 - 构建脚本。勾选触发远程构建 (WebHooks触发地址),填写简单的Pipeline script ![![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/104117_9b945fff_1325111.png "安装图.png")] - gitee集成WebHooks 添加SSH公匙 ![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/111013_3544d404_1325111.png "安装图.png") - 配置WebHooks ![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/110925_4ee3700e_1325111.png "安装图.png") - 不使用docker代码 #!groovy pipeline{ agent any //定义仓库地址 environment { REPOSITORY="https://gitee.com/wzxlt/jenkinsTest.git" } stages { stage('获取代码'){ steps { echo "start fetch code from git:${REPOSITORY}" //清空当前目录 deleteDir() //拉去代码 git "${REPOSITORY}" } } stage('代码静态检查'){ steps { //伪代码检查 echo "start code check" } } stage('编译+单元测试'){ steps { echo "start compile" //打包 bat 'mvn -Dmaven.test.skip=true -U clean install' } } stage('移动数据'){ steps { echo "move war" //切换目录 dir('target') { bat 'xcopy *.war D:\\CodeSoftware\\Tomcat\\apache-tomcat-8.5.20-windows-x64\\apache-tomcat-8.5.20\\webapps /y ' } } } stage('启动服务'){ steps { echo "start tomcat" bat 'net stop tomcat8' bat 'net start tomcat8' } } } } - 使用docker代码 #!groovy pipeline{ agent any //定义仓库地址 environment { REPOSITORY="https://gitee.com/wzxlt/jenkinsTest.git" } stages { stage('获取代码'){ steps { echo "start fetch code from git:${REPOSITORY}" //清空当前目录 deleteDir() //拉去代码 git "${REPOSITORY}" } } stage('代码静态检查'){ steps { //伪代码检查 echo "start code check" } } stage('编译+单元测试'){ steps { echo "start compile" //打包 bat 'mvn -Dmaven.test.skip=true -U clean install' } } stage('构建镜像'){ steps { echo "start build image" //build镜像 bat 'docker build -t 目录 .' //登录163云仓库 bat 'docker login -u 用户名 -p password 密码' //推送镜像到163仓库 bat 'docker push 目录' } } stage('启动服务'){ steps { echo "start service" //重启服务 bat 'docker-compose up -d --build' } } } } - 构建成功图 ![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/111054_c4cba03b_1325111.png "安装图.png") - 运行成功 ![输入图片说明](https://images.gitee.com/uploads/images/2018/1122/111201_daa5f691_1325111.png "安装图.png") 各位大佬勿喷啊