Jenkins创建多分支流水线

2023-05-16

Jenkins创建多分支流水线

    • 一、准备工作
    • 二、安装插件
      • 1、安装Docker和Docker Pipeline
      • 2、安装Blue Ocean
      • 3、安装Publish Over SSH
    • 三、创建多分支流水线
    • 四、配置以及脚本
    • 四、构建项目

        在我们的实际开发过程中,我们势必会存在多个分支进行不同的研发需要,这个时候如果不同分支就要我们去jenkins创建对应的任务就比较麻烦,这个时候就可以使用jenkins的多分支流水线,我们只需要配置好,各个分支的流水线就都帮我们创建好了。

一、准备工作

我们本次实践中需要用到maven进行打包,所以我们首先配置好maven,让其可以正常使用

在“系统管理”->“系统配置”->“全局属性”中,我们选择“环境变量”,这里的maven相关环境变量配置正确即可,注意路径需要更换成自己的路径

在这里插入图片描述
在这里插入图片描述
注:单词不要写错,“PATH+EXTRA”中间是“+”,千万不要配置错了

PATH+EXTRA
$MAVEN_HOME/bin

在“全局工具配置”中,设置自己的setting.xml文件
在这里插入图片描述
jenkins安装以及一些基础配置可以参考一下文章
Docker安装Jenkins
Jenkins部署Git中的Springboot项目(一)
Jenkins部署Git中的Springboot项目(二)

二、安装插件

1、安装Docker和Docker Pipeline

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、安装Blue Ocean

在这里插入图片描述

3、安装Publish Over SSH

在这里插入图片描述
具体配置参数如下文章
Jenkins部署Git中的Springboot项目(二)

三、创建多分支流水线

在jenkins主页点击“打开Blue Ocean”
在这里插入图片描述
进入Blue Ocean创建新的流水线
在这里插入图片描述
选择Git仓库
在这里插入图片描述
配置自己要部署的Git仓库信息,然后创建证书和流水线
在这里插入图片描述
创建完成之后进入首页就可以看到我们刚才创建的流水线了

在这里插入图片描述
点击进入该流水线,我们可以对相关配置进行完善在这里插入图片描述
名称与描述信息自己随便写就行
在这里插入图片描述
Git仓库信息必须配置正确,否则会创建失败,并且获取不到分支信息
在这里插入图片描述
这个可以简单理解为就是之前没有的构建保留多久,根据自己要求配置即可
在这里插入图片描述
配置完成之后就会自动扫描该仓库的所有分支并创建好对应的流水线
在这里插入图片描述
接下来就能看到我们的多分支流水线项目了
在这里插入图片描述
我们也可以手动扫描仓库分支
在这里插入图片描述
此时我们每个分支的流水线就都自动创建好了
在这里插入图片描述

配置完成后,进入Blue Ocean,也可以看到我们的两个分支流水线
在这里插入图片描述
无论在jenkins页面或者Blue Ocean页面,都可以启动多分支流水线任务,Blue Ocean的页面效果会更好一些。

四、配置以及脚本

代码中我们找到Jenkinsfile,操作比较简单,自己可以根据自己需要做更多的功能,这个必须放到项目的根目录下
大致就是先使用maven进行打包,然后将jar包发送到我们部署的机器上,调用脚本执行即可完成

pipeline {
  agent any
  stages {
    stage('Check Mvn') {
      parallel {
        stage('first mvn version') {
          steps {
            sh 'mvn --version'
          }
        }

        stage('Mvn Package') {
          steps {
            sh 'mvn clean package'
          }
        }

      }
    }

    stage('Send') {
    	steps {
    		sshPublisher(
    			continueOnError: false,
    					failOnError: true,
    					publishers: [
    					sshPublisherDesc(
                            configName: "vm-128",
                            transfers: [sshTransfer(sourceFiles: 'target/button_swagger.jar',
                            removePrefix: 'target/', remoteDirectory: '/')],
                            verbose: true
    				)
    			]
    		)
    	}
    }
    stage('Start') {
        steps {
            sshPublisher(
                continueOnError: false,
                    failOnError: true,
                        publishers: [
                            sshPublisherDesc(
                            configName: "vm-128",
                            transfers: [sshTransfer(execCommand : '/home/button.sh')],
                            verbose: true
                        )
                    ]
            )
        }
    }
  }
}

说明:
configName: “vm-128” ,这个配置必须与Publish over SSH中的Name保持一致,否则会执行失败
在这里插入图片描述

jenkins打包完成之后,就会使用Publish over SSH插件将jar包发送到对应的部署服务器中,在部署服务器上我写了一个简单的脚本,大概就是将jar包通过docker构建成镜像,然后启动镜像即可完成jar包的启动,如下是执行脚本与Dockerfile文件的内容
在这里插入图片描述

/home/button.sh文件内容(脚本随便写了写,自己根据自己需要编写shell脚本即可)

#!/bin/bash
imagesname=button_swagger
container=button_swagger
# 停止项目
if [[ "$(docker inspect button_swagger 2> /dev/null | grep '"Name": "/button_swagger"')" != "" ]]; 
then 
  echo $container "存在,停止并删除"
  docker stop button_swagger
  docker rm button_swagger
else 
  echo $container "不存在"
fi
# 删除镜像
if [[ "$(docker images -q $imagesname 2> /dev/null)" != "" ]]; 
then 
  echo $imagesname '镜像存在,删除它'
  docker rmi $(docker images -q $imagesname 2> /dev/null)
else 
  echo $imagesname '不存在'
fi
cd /home
# docker rmi button_swagger:V1
echo "开始构建镜像"
docker build -t button_swagger:V1 .
echo "构建镜像完成"
# 启动项目
echo "开始启动镜像"
docker run -d --net=host \
--name button_swagger -p 8099:8099 button_swagger:V1
echo "启动镜像完成"

/home/Dockerfile

FROM java:8
MAINTAINER zhanghang
VOLUME /tmp
ADD ./button_swagger.jar button_swagger.jar
RUN bash -c 'touch /button_swagger.jar'
EXPOSE 8099
ENTRYPOINT ["java", "-jar", "/button_swagger.jar"]

四、构建项目

1、jenkins主页面构建
进入我们对应的多分支流水线,选择对应的分支,点击立即构建即可
在这里插入图片描述
通过Console Output可以查看构建的log
在这里插入图片描述

2、Blue Ocean中构建
在这里插入图片描述
点击即可查看具体的执行过程,Blue Ocean中查看会更直观一下
在这里插入图片描述

构建完成之后即可在部署服务器上进行查看
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jenkins创建多分支流水线 的相关文章

  • 软路由网络部署配置

    软路由网络部署配置 一 作为交换机二 作为一级路由器三 作为旁路由模式一 xff1a 主路由开 DHPC 43 N1 关 DHPC 非全局 xff09 设置步骤 模式二 xff1a 主路由开 DHPC 43 N1 关DHPC 全局 方法一方
  • PX4 vision_to_mavros定位

    PX4官方给出以下做法从而使用intel realsense t265深度相机作为视觉估计的硬件选择 在这里我使用pixhawk 4和realsense t265以及Jetson TX2机载计算机以及benewake tfmini激光测高模
  • Top 50 有趣网站

    50 经典桌面 这个名叫东子的偏执狂不知花了多少 工夫 xff0c mydeskcity com的谌萘看锏 了40G xff0c 很多图片都是站长本人在国 外搜集后 xff0c 自己进行加工的作品 http www mydeskcity c
  • PX4避障和轨迹规划(3DVFH*)

    采用伴侣计算机 Companion Computer 的方案 xff0c 通过使用mavros的obstacle distance插件订阅 mavros obstacle send话题 xff0c 进而通过local planner本地轨迹
  • PX4飞控控制投放装置

    PX4飞控控制投放装置原理跟相机触发方式一样 xff0c 都是通过映射辅助AUX通道实现对应的信号发送 相机触发方法参考如下链接 xff1a Camera Trigger PX4 User Guide 触发方法有很多种 xff0c 这里我们
  • PX4板载计算机外部控制

    板载计算机外部控制主要是使用第三方机载计算机 xff08 如 xff1a Intel Aero Jetson TX2 Jetson Nano 其他类型minipc xff09 等通过mavlink协议实现对飞控参数的获取和机载端控制 xff
  • PX4无人机配置4G空地多机组网系统

    前言 使用4G网络实现无人机地面端与天空端实时通信 xff0c 并基于蒲公英cloudVPN组网技术实现广域网内的异地组网 xff0c 进一步实现不限制距离的空地多机远程组网系统 cloudVPN组网无需公网IP xff0c 需要注册一个花
  • OpenWRT配置Zerotier实现内网映射

    OpenWRT加入zerotier xff1a zerotier使用教程 OPENWRT LEDE 配置ZeroTier网络教程 子绘绘的博客 CSDN博客 Openwrt路由通过Zerotier组网实现异地内网互访 Linux加入zero
  • PX4云台控制

    一 云台硬件配置 云台采用storm32bgc无刷三轴云台 xff0c 该云台支持通过飞控控制与WBUS多通道接收机控制 这里我们采用通过pixhawk4飞控进行控制 pwm控制模式 采用三条3pin杜邦线将飞控辅助通道AUX1 3连接至云
  • 行人和人脸识别数据集

    推荐一个可应用于无人车 无人机 监控识别相关的数据集 行人和人脸检测数据集 xff08 FEEMS xff09 xff1a GitHub neverland7D Face and Pedestrian Detection Dataset F
  • Acuro二维码识别与降落对准

    什么是Aruco码 xff1f Aruco码能做什么 xff1f 搜索任务 自主降落等辅助标识 替代复杂任务中较难识别的目标 xff08 短期替代 长期替代 xff09 SLAM中的地标 反解无人机位置 实现定点 最容易识别的目标之一 1
  • ADRC控制算法在多旋翼飞行器上的应用

    基础理论知识 xff1a 程序中涉及的部分知识点参考如下链接 xff1a ADRC算法以及参数整定 xff1a 关于ADRC算法以及参数整定 xff08 调参 xff09 的一些心得体会 西涯先生的博客 CSDN博客 adrc控制算法 AD
  • 补充总结:现代控制理论

    补充内容 xff1a 现代控制理论与经典控制理论的区别 xff1a 经典控制理论主要是借助于传递函数研究系统输出与输入的关系 xff0c 而不管系统到底内部结构如何 xff0c 好比一个未知的 黑匣子 现代控制理论相对而言是要研究系统内部的
  • 网上英语学习资源大整理

    翻译 http www bilinguist com 汉英论坛 xff0c 高手云集 url http www chinatranslate net url 中国翻译网 xff0c 号称全国最大的翻译专业网站 url http gb tra
  • 使用PID和LQR控制器进行多旋翼飞行器控制

    任务内容 通过调整PID和LQR控制器以实现稳定悬停的多旋翼飞行器 xff0c 运用在无论是在仿真中还是在实际系统中 参考内容 LQR控制部分基础参考内容 xff1a LQR控制器 参考链接 xff1a Linear Quadratic R
  • Ardupilot板载计算机上云实践——第一步

    阿里云ECS在基于MAVLink的飞行器的数据中转与日志上云应用 自己先搭建了一个Demo用于测试稳定性 xff0c 访问地址 xff1a http 182 92 127 202 8123 Ardupilot 官方在今年 xff08 202
  • ADRC Ardupilot代码分析

    记录一下自己对于Ardupilot ADRC控制代码的一些理解 GitHub链接 ADRC Active Disturbance Rejection Control by MichelleRos Pull Request 20243 Ard
  • Phillweston 自动驾驶 决策规划算法 面经

    By Phillweston 注 xff1a 原创链接如下 xff1a 详细 xff01 自动驾驶规划控制算法工程师面经 xff08 具体题目 43 回答思路 xff09 本人引用了此链接中的提问内容 xff0c 并根据自己的想法写了部分回
  • OpenWRT 分流DNS的设置

    文章出处 xff1a OpenWRT 分流DNS的设置 Issue 57 luckyyyyy blog 我自己根据实际需要基于上方的链接内容进行了相关补充 OpenWRT配置IPv6的方法参考如下文章 xff1a OpenWRT IPv6
  • 智鹰科技——无人机线路巡检系统商业计划书

    智鹰科技 无人机线路巡检系统商业计划书 第一章 执行总结1 1 项目背景1 2 产品介绍1 3 市场分析1 4 竞争分析1 5 营销策略1 6 公司战略1 7 公司概况1 8 财务与投融资计划1 9 风险分析 第二章 项目背景2 1 国内外

随机推荐

  • linux环境安装nodejs和npm环境

    原文地址 前言 因为刚刚换上hexo的框架 xff0c 想利用私有部署把Twikoo评论部署在博客上 xff0c 所以需要使用liunx安装node js 网络上对于安装linux的资料很少 xff0c 在我查找了一些资料之后终于把环境配置
  • python 一些常用但总是记不住的函数

    python 一些常用但总是记不住的函数 import numpy as np transpose 转置函数 y 61 np mat span class hljs number 1 span span class hljs number
  • 每天一篇论文 316/365 用于欠驱动系统能量控制端到端学习的深拉格朗日网络

    Deep Lagrangian Networks for end to end learning of energy based control for under actuated systems 摘要 将深度学习应用于控制领域 xff0
  • Android 注解(Annotation)的入门与使用(一)

    Android 注解 xff08 Annotation xff09 的入门与使用 xff08 一 xff09 概述什么是注解 xff08 Annotation xff09 注解 xff08 Annotation xff09 用来做什么元注解
  • Java的equals方法使用方法

    在标准Java库中包含150多个equals方法的实现 xff0c 这里给出一个比较完美的实现方法 1 xff09 显示参数命名为otherObject xff0c 稍后需要将它转换成另一个叫做other的变量 2 xff09 检测this
  • Java学习之旅--集合的使用(Map集合)

    好几天没有更新了 xff0c 主要是最近正在学习集合 xff0c 让博主有点头大 所以就耽误了 xff1a 现在就来说说集合里的Map集合 xff1a import java span class hljs preprocessor uti
  • Java学习之旅--线程的创建方法

    线程创建的方法一 span class hljs keyword package span com geminno day14 createthread1 span class hljs keyword public span span c
  • select搜索功能实现

    select搜索功能实现 最近在找工作 没时间写博客 现在找到了 就发发工作上的代码吧 xff01 今天我们说说select标签的搜索功能 xff1b 拿到任务时 xff0c 我先想到就是上网找资料 xff0c 最后看到的都是各种jquer
  • 【转】setStyleSheet的用法

    转自 xff1a https www cnblogs com aheng123 p 5630761 html 使用setStyleSheet来设置图形界面的外观 xff1a QT Style Sheets是一个很有利的工具 xff0c 允许
  • Mysql插入语句之value与values区别

    本文编写时间是在几年前 xff0c 可能不符合现有MySQL最新版本文档所述 xff0c 请自行判断 value与values区别 http dev mysql com doc refman 5 7 en insert html 看了一下官
  • 将jetson nano tf卡 制作成img镜像批量克隆

    jetson nano tf卡系统克隆 注意 这篇文章所使用的方式如果失败的话请看另一篇 大概率失败 1 linux 安装工具 根据使用的文件系统大小生成镜像文件 更改空镜像文件的分区表信息 挂载虚拟磁盘并对虚拟磁盘进行分区格式化 备份SD
  • 电机,电调,电池搭配的一些关系

    电机 2212 920KV 含义 宽22mm xff0c 高12mm 在1V电压下每分钟920转 kv 值越大 转速越快 配的桨叶越小 扭力越小 kv值越小 转速越慢 配的桨叶越大 扭力越大 电流关系 电机满载电流 lt 电调输出电流 lt
  • 使用Docker安装RabbitMq

    1 搜索镜像 docker search rabbitmq management 2 拉取镜像 docker pull macintoshplus rabbitmq management 3 启动rabbitmq docker run d
  • git如何回滚到历史某个版本

    场景 xff1a 比如某员工误操作提交到了公司比较重要的develop分支 xff0c 如何恢复到之前的某一个版本呢 xff0c git如何回滚到历史某个版本 方法一 xff1a idea里面git操作版本 1 2 选中某一个版本 xff0
  • 使用Idea中Docker插件部署Springboot应用并远程Debug

    目前在java开发中 xff0c 由于一套完整的项目所涉及到的微服务模块很多 xff0c 要是按照传统的方式一个一个部署比较麻烦 xff0c 所以很多情况下我们都会使用docker镜像的方式进行部署 当我们的应用部署好之后 xff0c 若运
  • ClickHouse安装(单机版)

    官方说明文档 yum span class token function install span span class token parameter variable y span yum utils yum config manage
  • docker推送镜像至阿里私有镜像仓库

    docker推送镜像至阿里私有镜像仓库 一 注册阿里私有镜像仓库二 将公共镜像推送至私有镜像仓库1 首先拉取到mysql镜像2 登录阿里云Docker Registry xff08 这里的信息要更换成自己的 xff09 3 将mysql镜像
  • Docker安装Jenkins

    查找jenkins镜像 span class token function docker span search jenkins 拉取jenkins镜像 span class token function docker span pull
  • HDFS通过WEB UI操作文件

    HDFS通过WEB UI操作文件 1 创建目录2 向指定目录上传文件3 返回上层目录4 移动文件5 删除文件6 修改文件权限 所有者 xff0c 组等信息7 搜索文件8 查看文件 进入Browse the file system 1 创建目
  • Jenkins创建多分支流水线

    Jenkins创建多分支流水线 一 准备工作二 安装插件1 安装Docker和Docker Pipeline2 安装Blue Ocean3 安装Publish Over SSH 三 创建多分支流水线四 配置以及脚本四 构建项目 在我们的实际