小编Vin*_*ent的帖子

如何在Jenkins声明管道中设置PATH

在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以便为我的所有阶段使用自定义工具.

path environment-variables jenkins jenkins-pipeline

26
推荐指数
3
解决办法
4万
查看次数

如何处理每晚构建Jenkins声明性管道

我的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)

jenkins jenkins-pipeline

7
推荐指数
3
解决办法
6195
查看次数