1.1 Pipeline控制台输出前加时间戳

1.Jenkins安装Timestamper插件。

2.开启pipeline的Timestamper插件功能

Manage Jenkins –> Configure System –> Timestamper –> Enabled for all Pipeline builds

3.构建一个Pipeline验证日志是否有时间戳

1.2 去掉pipeline中shell命令的调试信息

在Jenkins的Console Output中有时会看到‘+’开头的shell命令调试信息,看起来比较混乱。原因是Jenkins默认用‘-xe’的选项去运行‘sh’命令。例如如下pipeline的输出。

1.我们在pipeline脚本中一个sh处理函数

1
2
3
def mysh(cmd) {
sh('#!/bin/sh -e\n' + cmd)
}

2.将pipeline脚本中原来使用sh来执行的shell命令,替换成我们新建的mysh函数

3.再次构建验证是否还有调试信息,类似于+号的内容

1.3 Jenkins同一个项目拉取两个git仓库代码

安装插件:Multiple SCMs

自由风格Job配置:

Pipeline脚本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
pipeline {
agent any
environment{
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/Users/putianhui/Downloads/gradle-6.2/bin/:/Users/putianhui/Downloads/flutter/bin/"
}

stages {
stage('1.拉取代码') {
steps {
//配置构建的分支
checkout([$class: 'GitSCM', branches: [[name: 'lee_dev']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'android-client']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${git_auth}",url: 'http://172.23.1.57:8082/gitlab/flutterend/android-client.git']]])
checkout([$class: 'GitSCM', branches: [[name: 'devsecond']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'NewGratus']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: "${git_auth}",url: 'http://172.23.1.57:8082/gitlab/flutterend/NewGratus.git']]])
}
}
}
}