是否可以远程触发Jenkins多分支流水线构建?
Jenkins多分支流水线远程触发构建的可行方案
目前Jenkins里只有Freestyle项目默认提供远程触发构建的配置项,多分支流水线项目直接在Jenkinsfile中使用RemoteBuildTrigger会报错,错误信息如下:
WorkflowScript: 8: Invalid trigger type "RemoteBuildTrigger". Valid trigger types: [upstream, cron, githubPush, pollSCM]
下面是几个可行的替代方案:
通过Jenkins REST API触发
直接调用Jenkins的API接口发送POST请求,示例命令:curl -X POST "http://<你的Jenkins地址>/job/<项目名>/<分支名>/build" \ --user "<用户名>:<API Token>"需要提前在Jenkins用户设置中生成API Token,确保请求携带正确的认证信息。
使用Generic Webhook Trigger插件
安装该插件后,在Jenkinsfile中配置通用Webhook触发器,支持自定义触发规则,示例代码:triggers { genericTrigger( genericVariables: [ [key: 'BRANCH', value: '$.ref', expressionType: 'JSONPath'], [key: 'COMMIT_HASH', value: '$.after'] ], causeString: 'Webhook触发构建,分支:$BRANCH', token: '专属触发令牌', printContributedVariables: true ) }配置完成后,外部服务可向Jenkins的通用Webhook地址发送请求触发构建。
借助Build Token Root插件
安装插件后为目标分支生成触发令牌,通过简单的GET请求即可触发构建:http://<你的Jenkins地址>/buildByToken/build?job=<项目名>/<分支名>&token=<你的令牌>这种方式无需复杂认证配置,适合简单场景下的远程触发。
内容的提问来源于stack exchange,提问作者compsciman
相关产品推荐
相关产品推荐

