- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这应该是 Jenkins 中一个简单的、开箱即用的配置,但我在互联网上没有找到任何简单的东西。我想要做的就是仅当我在我们的 Github 存储库中 merge pull 请求时才触发构建。
首先,Github 将围绕 pull 请求的几乎所有事件聚合到一个 webhook 中(与允许您区分操作的 bitbucket 相比)。
在 Jenkins 方面,我看到帖子指向 Generic Webhook Plugin它允许您摄取 webhook 的 json 并创建变量,但是从这里看起来需要在脚本中使用这些变量才能触发/不触发构建。
Github Pull Request Build是另一个流行的插件,但同样没有明确说明“仅在 merge PR 时触发此构建”,甚至似乎提供了在 webhook json 中查找特定值的选项。
除非那里有其他插件,否则我没有找到最好的选择(即最少的配置才能开始构建)是为 Jenkins 中的 GITSCM 轮询配置 GitHub Hook 触发器,并且在 Github 端仅在推送事件上发送 webhook ...但是这不是我们正在寻找的确切行为。
现在这一切都是通过 UI 完成的,而且自从我使用 Jenkins 以来已经有一段时间了,所以也许声明性管道基础设施已经通过了 UI,但看起来这应该更直观。有人可以解释他们发现的最简单的实现,使用 Jenkins 和 Github,仅在 pull 请求 merge 到特定分支时触发构建?
最佳答案
不再需要 webhook,因为您现在如何 GitHub Actions (假设您使用的是 github.com
,尽管 Actions are coming with GHE, GitHub Enterprise, in Beta, starting Sept. 2020 )。
如解释 on this thread ,您可以在 GitHub 端在 master
上 merge pull 请求时触发作业:
on:
pull_request:
branches:
- master
types: [closed]
jobs:
<job id>:
if: github.event.pull_request.merged == true
steps: // the rest of the code
然后该作业可以使用 GitHub 操作,例如
Trigger Jenkins Job for GitHub Actions ,这将调用您的 Jenkins 并触发一个或多个 Jenkins 作业。
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: trigger single Job
uses: appleboy/jenkins-action@master
with:
url: "http://example.com"
user: "example"
token: ${{ secrets.TOKEN }}
job: "foobar"
之后
discussion with the OP并关注
GitHub Actions tutorial ,我确认:
triggerJenkinsBuild.yml
(或您想要的任何其他名称)必须在文件夹 .github/workflows
中创建在你的 GitHub 存储库中,上面提到的两个 YAML 部分; url:
”字段只是 Jenkins 实例的基本 URL,没有额外的路径。 关于git - 在 Github 中 merge pull 请求时触发 Jenkins 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64050510/
我想创建一个 Jenkins 工作来启动其他 Jenkins 工作。这很容易,因为 Jenkins 模板项目插件允许我们创建“使用另一个项目的构建器”类型的构建步骤。然而,让我的情况更难的是我必须在其
我有一个简单的Windows批处理命令(robocopy),该命令返回零错误,但在Jenkins中始终被标记为失败。我想知道为什么? D:\ Jenkins \ jobs \ Jenkins Conf
我有两个 Jenkins 工作 - Jenkins Job1 和 Jenkins Job2。 我有多个应用程序并使用相同的 Jenkins 来构建应用程序。如果相同的应用程序在 Jenkins 中运行
我找不到这两者之间的区别。这些是相同的还是不同的。 最佳答案 第一个区别是支持(正如其他人所提到的)。 CloudBees 提供企业级支持以及经过全面审查和测试的 Jenkins 版本,该版本将在各种
是否可以指定在多次触发作业(A)的情况下,将先前的作业从队列中删除,并且如果有足够的可用插槽,则仅将最新的作业留在队列中或启动? 提前致谢! 最佳答案 您可以使用通过Groovy Script Plu
我有2位Jenkins主持人,并且希望First Jenkins在第一个结果的基础上基于“SUCCESS”触发远程Jenkins上的工作。 我看过各种插件,但它们似乎都表明一个Jenkins主机,可以
我的 jenkinsfile 有几个参数,每次我更新参数(例如删除或添加新输入)并将更改提交到我的 SCM 时,我没有在 jenkins 中看到相应更新的作业输入屏幕,我必须运行执行,取消它,然后查看
有没有办法在构建完成后触发相同的工作。我有一项工作需要运行,直到我手动中止它。有没有办法做到这一点? 最佳答案 最简单的方法是添加一个构建相同项目的后期构建步骤。将“构建后操作”-“构建其他项目”-“
我在 Linux 家中的特定用户下有工作/.jenkins 文件夹。我想与另一个用户一起启动 Jenkins,但重新使用另一个用户的 .jenkins 文件夹。我怎样才能做到这一点? Jenkins
我是 Jenkins 的新手,我不确定这是否可行,但我想设置一个 Web 界面,人们可以在其中单击“开始作业”,这将告诉 Jenkins 开始特定的构建作业。 Jenkins 是否有允许此类操作的网络
如何获取 Jenkins 凭证变量,即“mysqlpassword”,可供 Jenkins 声明性管道的所有阶段访问? 下面的代码片段工作正常并打印我的凭据。 node { stage('Gett
如何获取 Jenkins 凭证变量,即“mysqlpassword”,可供 Jenkins 声明性管道的所有阶段访问? 下面的代码片段工作正常并打印我的凭据。 node { stage('Gett
如何将构建参数从一个项目传递到另一个项目? 我们在 Jenkins 用户界面中是否有任何配置,可以在完成一个构建项目后将构建参数传递给另一个项目? 我能够触发另一个项目,但无法传递构建参数。我们是否有
我正在 Jenkins 中构建一个项目,并希望在它之后立即启动测试,请稍候 直到测试完成,然后运行另一个作业来分析结果。测试系统是一个封闭的系统(我不能修改它)所以为了检查测试是否完成我需要每 X 秒
我创建了一个测试 jenkins 作业管道。此作业具有字符串参数 - 'testVar' Jenkins文件代码: println("env.TESTVAR=" + env.TESTVAR) prin
我的 Jenkins 工作“构建”配置有 3 执行 shell - 构建任务 2 构建后操作 有没有办法获取每个构建任务和构建后操作的运行时间? 最佳答案 不直接,这就是为什么: 我使用 a Jenk
是否有任何适用于 Jenkins 的插件可以为 Jenkins 提供键值存储选项?功能接近的插件是凭据插件。目标是拥有一个存储全局配置参数的插件,并且此参数可用于 Jenkins 作业。 最佳答案 转
默认情况下,Jenkins 是否会保留每个构建中生成的所有构建和工件。或者它会在一段时间后删除它们。我知道我可以配置“丢弃旧版本”选项,但我想知道 Jenkins 的默认行为。 最佳答案 默认是保留所
Jenkins 构建中的每个文件参数“帮助文本”, Accepts a file submission from a browser as a build parameter. The uploade
情况:我在我的虚拟服务器上安装了 Jenkins 并设置了一个“自由式管道”。我通过 webhook push 将它连接到我的 github,它可以工作(当我推送到存储库时,在 jenkins 中启动
我是一名优秀的程序员,十分优秀!