在Jenkins脚本管道中,您可以像这样设置PATH env变量:
node {
git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
withEnv(["PATH+MAVEN=${tool 'M3'}/bin"]) {
sh 'mvn -B verify'
}
}
Run Code Online (Sandbox Code Playgroud)
请注意PATH + MAVEN,如此处所述https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-withenv-code-set-environment-variables:
要设置的环境变量列表,每个变量的形式为VARIABLE = value或VARIABLE =以取消设置否则定义的变量.您也可以使用语法PATH + WHATEVER =/something来预先添加$ PATH.
但我没有在使用环境语法的声明性管道中找到如何做到这一点(如下所述:https://jenkins.io/doc/pipeline/tour/environment).
environment {
DISABLE_AUTH = 'true'
DB_ENGINE = 'sqlite'
}
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想更新PATH以便为我的所有阶段使用自定义工具.
我的repo中有一个带有Jenkinsfile的multibranch管道,我可以在每次提交时使用我的CI工作流程(构建和单元测试 - > deploy-dev - >批准 - > deploy-QA - >批准 - > deploy-prod) .我想做的是在第一阶段构建和单元测试的夜间构建中添加SonarQube Analysis.由于我的构建是由Gitlab触发的,我已经定义了我的管道触发器如下:
pipeline {
...
triggers {
gitlab(triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All')
}
...
}
Run Code Online (Sandbox Code Playgroud)
为了设置我的夜间构建,我添加了
triggers {
...
cron('H H * * *')
}
Run Code Online (Sandbox Code Playgroud)
但是现在,如果我们只在晚上构建由cron表达式触发的作业,如何执行分析步骤?
我简化的构建阶段如下所示:
stage('Build & Tests & Analysis') {
// HERE THE BEGIN SONAR ANALYSIS (to be executed on nightly builds)
bat 'msbuild.exe ...'
bat 'mstest.exe ...'
// HERE THE END SONAR ANALYSIS (to be executed on nightly builds)
}
Run Code Online (Sandbox Code Playgroud)