【发布时间】:2021-02-05 20:06:30
【问题描述】:
我们有一个由Github Action 触发的 Jenkins 作业(如下所列)。
name: CI
on:
pull_request:
branches:
- test/*
types: [ closed ]
jobs:
build:
if: github.event.pull_request.merged == true
name: Build
runs-on: ubuntu-latest
steps:
- name: trigger single Job
uses: appleboy/jenkins-action@master
with:
url: "https://example.company.com"
user: "appleboy"
token: ${{ secrets.TOKEN }}
job: "Pipeline"
触发器现在是通配符,可以是任何以test/ 开头的分支。然而,每次触发器触发时,Jenkins 作业都会从错误的分支中提取和构建。我注意到每次发生这种情况时,我都需要在 Jenkins UI 中对分支进行硬编码,然后选择“立即构建”选项并手动运行它。当我将构建返回到通配符规范并且触发器再次触发时,这次是从一个新分支,它是从我之前手动输入的分支构建的。示例工作流程:
-
PR 合并到分支
test/v1 -
Jenkins 作业被触发,但从之前手动输入的分支构建(即
test/v0) -
我硬编码分支并手动执行构建
- 将管道返回到通配符配置
-
PR 合并到分支
test/v2 -
Jenkins 作业被触发,但从
test/v1分支构建
更新
通过从分支说明符中删除remotes,我得到以下行为:
-
PR 合并到
test/v2 -
Jenkins 作业被触发,但从
test/v1构建 -
同时触发另一个从
test/v2构建的作业
查看第 2 步构建的日志,我看到以下消息(这在第 3 步的构建中不存在):
多个候选修订版
安排另一个构建以赶上管道
【问题讨论】: