如何在Jenkins中区分自动触发和强制触发的作业?

ncgqoxb0  于 6个月前  发布在  Jenkins
关注(0)|答案(1)|浏览(81)

我有一个构建作业,它是由perforce post submit触发器使用http post请求启动的。类似于:

curl --header 'Content-Type: application/json' 
     --request POST --user $JUSER:$JPASS 
     --data payload="{change:$CHANGE,p4port:\"$P4PORT\"}" 
     $JSERVER/p4/change

字符串
我也有相同的工作设置为启动一个自动调度过程,每天两次
perforce触发器编译的想法只是为了确保项目编译时没有错误。
自动化的一个,我希望它做一个额外的步骤, Package 的项目准备供用户消费(这需要显着的时间,所以我不希望它执行每一次)
到目前为止我尝试的事情

  • 尝试在post请求上传递一个额外的参数,我找不到一种方法来实现这一点
--data payload="{change:$CHANGE,p4port:\"$P4PORT\",P4Triggered:1}"

  • 我有两份工作,但我希望持续集成,因此我希望能够重用相同的工作空间,
  • 我查看了Jenkins环境变量,看看是否有什么东西能提供这些信息,但没有找到
cnh2zyt3

cnh2zyt31#

所以我最终使用管道来实现这个工作,我真的建议人们这样做。只花了一天的研究和实现,最终运行了一些东西。然后我添加了一个带有when步骤的stage

stage('DEPLOY'){
        when {
            anyOf{
                triggeredBy "TimerTrigger" //deploy if initiated by a timer or manually parameter
                expression { params.deploy == true }
            }
        }
        steps{
            echo 'Deploying'
            bat returnStatus: true, script: '%WORKSPACE%\\TOOLS\\Deploy\\deploy.bat'
        }
    }

字符串
这就行了。它还有一些很酷的可视化功能,可以显示什么时候有东西被绕过了
Pipeline Visualization
话虽如此,我看到这个在线,可能已经使它的工作以及与frestyle项目和perforce触发器

--data 'json={"parameter":[{"name":"PARAMNAME","value":"agent-name"}]}&Submit=Build'


我以后可能会试试。

相关问题