相关疑难解决方法(0)

如何区分Jenkins管道中的构建触发器

我希望为我的Jenkinsfile添加一个条件阶段,该阶段根据构建的触发方式运行.目前我们的设置使得构建可以通过以下方式触发:

  1. 我们的git仓库的变化是在分支索引上获得的
  2. 用户使用UI中的"立即构建"按钮手动触发构建.

是否有任何方法可以运行不同的管道步骤,具体取决于哪些操作触发了构建?

jenkins jenkins-pipeline

15
推荐指数
6
解决办法
1万
查看次数

Jenkins - 如何在下游获取和使用上游信息

执行名为"A"的上游作业.A执行测试用例成功,即下游项目"B".但是当从B发送邮件时,我们必须在邮件中包含上游项目详细信息(上游项目名称,构建号码).因此,我们可以轻松地将测试运行与各自的上游作业进行映射/核心化.

在下游项目仪表板中,显示详细信息.

Started by upstream project Dev_RM_3.0_CI_Test build number 10
originally caused by:
Run Code Online (Sandbox Code Playgroud)

我查了https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project.但在下游找不到任何可以继承的东西.

创建具有以下详细信息的示例作业以显示当前作业详细信息.

echo $BUILD_NUMBER
echo $JOB_NAME
echo $BUILD_ID
Run Code Online (Sandbox Code Playgroud)

但输出是

Building on master in workspace /var/lib/jenkins/workspace/env
[env] $ /bin/sh -xe /tmp/hudson970280339057643719.sh
+ echo 1
1
+ echo env
env
+ echo 1
1
Finished: SUCCESS
Run Code Online (Sandbox Code Playgroud)
  1. 有什么帮助继承下游工作的上游细节?
  2. 如何获得当前的工作细节?

jenkins jenkins-plugins

14
推荐指数
2
解决办法
3万
查看次数

如何处理每晚构建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
查看次数