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

问题描述 投票:0回答:1

我有一个构建作业,它由使用 http post 请求的 perforce post 提交触发器启动。 比如:

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

我还设置了相同的作业,以自动安排流程启动,每天两次

perforce触发器编译的想法只是为了确保项目编译时没有错误。

自动化的我希望它执行额外的步骤来打包项目以供用户使用(这需要大量时间,所以我不希望它每次都执行)

到目前为止我尝试过的事情

  • 尝试在发布请求上传递额外的参数,我找不到方法来实现该功能
--data payload="{change:$CHANGE,p4port:\"$P4PORT\",P4Triggered:1}"
  • 有两份工作,但我想要持续集成,所以我希望能够重用相同的工作空间。
  • 查看詹金斯环境变量,看看是否有东西给我这个信息,但没有运气
jenkins jenkins-pipeline perforce
1个回答
0
投票

所以我最终使用管道来完成这项工作,我真的建议人们这样做。 只花了一天的时间进行研究和实施,最终就让一些东西运行起来。 然后我只是添加了一个带有when步骤的阶段

        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' 

我稍后可能会尝试一下。

© www.soinside.com 2019 - 2024. All rights reserved.