Jenkins:参数化构建:分支|模块|回滚|打印日志

@TOC

Jenkins笔记

Jenkins笔记之新建任务:https://blog.csdn.net/weixin_42526326/article/details/119865834

Jenkins笔记之配置远程服务器:https://blog.csdn.net/weixin_42526326/article/details/119866221

Jenkins:参数化构建:多分支|多模块|回滚|打印日志:https://blog.csdn.net/weixin_42526326/article/details/121580465

根据自己的需求自定义构建不同的参数

多分支

安装Git Parameter Plug-In

同类型的插件不止一种,选择自己熟悉的即可

进入系统管理——插件管理——可选插件——直接搜——安装
[图片上传失败...(image-b0358b-1640157985000)]

配置参数

配置——Gods Webhook——参数化构建过程——添加参数——Git 参数——配置下面的参数:

名称:参数变量名

参数类型:选择分支/分支或者标签

默认值:设置为主分支或者其他的分支

在这里插入图片描述

源码管理——设定分支参数$mybranch 上一步骤中的参数名——其他在正确的情况下——保存

自动根据git地址解析版本


在这里插入图片描述

选择构建分支

在这里插入图片描述

分模块

前提

父项目和子项目必须添加build标签,这个分不分模块都是需要的

  • 父项目
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
</build>
  • 子项目
<build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
</build>

分模块build

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EW3doc2V-1638005232824)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211122175236237.png)]

参数配置

Extended Choice Parameter —— Parameter Type—— 选择Check Boxes(多选框)

Number of Visible Items : 模块限制

Delimiter:分隔符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ji4bHXJI-1638005232825)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211127164143904.png)]

分模块shell脚本

maven根据pom分模块

shell执行流程:

  • 获取分支参数、模块参数、工作空间路径(使用默认值)
  • 遍历路径跳转模块目录——读取当前目录pom.xml ——读取setting.xml
  • clean——install(complie)
#!/usr/bin/env bash

echo "branch to deploy: " $mybranch
echo "modules to deploy: " $submodule
echo "workspace is: " $WORKSPACE

# /, 转义符,获取,模块数组
array=(${submodule//,/ }) 
#遍历执行
for module in ${array[@]}
do
   echo "Try to compile other module"
   cd  $WORKSPACE/${module} && mvn -B -f pom.xml -s /data/apache-maven-3.8.1/conf/settings.xml -gs /data/apache-maven-3.8.1/conf/settings.xml clean install -Dmaven.test.skip=true
done

mvn 的基本用法

用法:mvn [options] [<goal(s)>] [<phase(s)>]

选项:
 -B,-批处理模式以非交互方式运行(批处理)模式(禁用输出颜色)
 -D,-定义<arg>定义系统属性
 -f,-file <arg>强制使用备用POM文件(或带有pom.xml的目录),pom文件路径必须紧跟在 -f 参数后面
 -e,-errors产生执行错误消息
 -X,-debug产生执行调试输出
 -l,-log-file <arg>所有构建输出的日志文件会去(禁用输出颜色)
 -q,-quiet安静的输出-仅显示错误
 -v,-version显示版本信息
 -h,-help显示帮助信息
 -s --settings <arg> 用户配置文件的备用路径;
 -gs --global-settings <file> 全局配置文件的备用路径;

分模块运行

运行SCP命令,SSH连接远程服务器,运行重启脚本,采用两种方式,

  • 一if ,else列出所有的服务

    !/usr/bin/env bash

    echo "modules to deploy: " $submodule

    array=({submodule//,/ }) for module in{array[@]}
    do
    echo "Try to restart other module start"
    scp -P 2021 /data/jenkins/workdir/jobs/base-service/workspace/module/module-service/target/module-service.jar devops@xxx.9.134.177:/home/devops/$module/

    ssh -p 2021 devops@xxx.9.134.177 "/data/initsh/$module-restart.sh"
    
    echo "Try to restart other module end"
    

    done

  • for 遍历所有的模块,服务器所有的项目都要规整。通常采用这种方式,自定义参数:同一个服务器多个服务遍历,每个结点一个任务,每个结点多个服务,可以做一个分组的设置

#!/usr/bin/env bash

echo "modules to deploy: " $submodule

array=(${submodule//,/ }) 
for module in ${array[@]}
do
    if [ "$module" == "module" ]; then
    
        echo "Try to restart other module start"
        scp -P 2021 /data/jenkins/workdir/jobs/base-service/workspace/module/module-service/target/module-service.jar devops@xxx.9.134.177:/home/devops/module/

        ssh -p 2021 devops@xxx.9.134.177 "/data/initsh/module-restart.sh"
    
        echo "Try to restart other module end"

     fi
done

项目回滚

原理:构建时可以选择是构建或者回滚字段,设置Choice字段的值,通过Choice设置项目build版本

参数配置

Gods Webhook——添加参数——Extended Choice Parameter

  • Extended Choice Parameter: 选择参数

  • Number of Visible Items:项目可见数

  • Delimiter:分隔符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gpxk94Ao-1638005232826)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211122170156675.png)]

配置选择框内字段


在这里插入图片描述

构建后存档

记录文件的指纹用于追踪

需要记录指纹的文件:Jenkins 工作目录保存的jar


在这里插入图片描述

项目构建选择

[图片上传失败...(image-398637-1640157985000)]

打印日志

需要单独开一个任务,与build、run都要区分开,非常的不方便,

原理:服务器远程命令打印日志到Jenkis,

打印日志的命令:

tail -$LogRow logPath/log$Date.log

-N

在这里插入图片描述

-Date

这个是日志的后缀,根据服务器日志名打印指定的日志文件,最多查看15天以内的日志

查看某一天的日志,如果输入.2021-11-22,就是查看2021-11-22的日志,注意前面是有一个.符号不能省略,最多查看15天以内的日志


在这里插入图片描述

SSH命令

tail -$LogRow /data/project/yilucloud-analysis/logs/error$Date.log
在这里插入图片描述

取消build,run

在这里插入图片描述

在这里插入图片描述

参考文章:

https://www.cnblogs.com/dadonggg/p/8444366.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容