Jenkins利用环境变量支持更多构建工具
来自Linux78|wiki
是不是所有的构建工具都需要安装相应的Jenkins插件才可以使用呢?当然不是。 平时,开发人员在搭建开发环境时做的就是:首先在机器上安装好构建工具,然后将这个构建工具所在目录加入PATH环境变量中。 如果想让Jenkins支持更多的构建工具,也是同样的做法:在Jenkins agent上安装构建工具,并记录下它的可执行命令的目录,然后在需要使用此命令的Jenkins pipeline的PATH环境变量中加入该可执行命令的目录。示例
pipeline {
agent any
environment {
PATH = "/usr/lib/customtool/bin:$PATH"
}
stages {
stage('build') {
steps {
sh "customtool build"
}
}
}
}
另一种写法
pipeline {
agent any
environment {
CUSTOM_TOOL_HOME = "/usr/lib/customtool/bin"
}
stages {
stage('build') {
steps {
sh "${CUSTOM_TOOL_HOME}/customtool build"
}
}
}
}
利用tools作用域实现多版本编译
在实际工作中,有时需要对同一份源码使用多个版本的编译器进行编译。tools指令除了支持pipeline作用域,还支持stage作用域。所以,我们可以在同一个pipeline中实现多版本编译。代码如下:
pipeline {
agent any
stages {
stage("build with jdk-10.0.2") {
tools {
jdk "jdk-10.0.2"
}
steps {
sh "printenv"
}
}
stage("build with jdk-9.0.4") {
tools {
jdk "jdk-9.0.4"
}
steps{
sh "printenv"
}
}
}
}
在打印出来的日志中,会发现每个stage下的JAVA_HOME变量的值都不一样