- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一种情况,所有开发人员都在开发分支中工作,并将所有提交仅推送到该开发分支。一位看门人将查看这些更改并将其 merge 到主分支。
在 Jenkins 中,我有一个由推送到 master 分支触发的工作。我想设置一个构建后操作来检查构建是否失败,然后向开发人员的开发人员发送一封电子邮件,该开发人员的 push dev 分支导致构建失败,而不是将电子邮件发送给 merge 开发人员的看门人更改到 master 分支并触发构建。我该怎么做?
最佳答案
这是我们遵循的以下过程,并建议使用与此类似的方法:
1) Allow merge to Develop branch from PR only
所有开发人员的更改只能通过 PR-Pull 请求推送到开发分支。以这样一种方式进行配置,即应通过最少的检查以允许 PR merge 以进行开发。
这样所有将要 merge 到开发分支中的更改都将得到验证,开发人员有责任确保清除检查以进行 merge ,而不会再让看门人头疼。
添加快照以供引用。
更新:Git 流策略
来源:https://nvie.com/posts/a-successful-git-branching-model/ ?
2) Define Pipelines & Multibranch
如果您已经在使用管道和多分支插件作为 CI/CD 的一部分,那么上述步骤会很简单。如果不是,这些是理想的插件,应该成为 CI/CD 的一部分。
这里有一些引用:
https://jenkins.io/doc/book/pipeline/
https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin
https://jenkins.io/doc/tutorials/build-a-multibranch-pipeline-project/
更新:Multibranch Pipeline 项目类型使您能够为同一项目的不同分支实现不同的 Jenkins 文件。在多分支流水线项目中,Jenkins 自动发现、管理和执行源代码控制中包含 Jenkinsfile
的分支的流水线。
引用此处创建多分支管道:https://jenkins.io/doc/book/pipeline/multibranch/
GitHub Organization Folder使 Jenkins 能够监控整个 GitHub 组织并自动为包含分支和包含 Jenkinsfile 的 pull 请求的存储库创建新的多分支管道。
3) Enable emailext
此处的示例代码段将为已提交代码的开发人员触发通知。
emailext(
subject: "Build ${env.JOB_NAME} - ${currentBuild.displayName} ${currentBuild.result}",
body: """Build ${currentBuild.result}
${env.JOB_URL}
""",
recipientProviders: [[$class: 'DevelopersRecipientProvider']]
)
此处描述了变量 currentBuild
的更多选项:https://qa.nuxeo.org/jenkins/pipeline-syntax/globals#currentBuild
Emailext 插件:https://wiki.jenkins.io/display/JENKINS/Email-ext+plugin
https://jenkins.io/doc/pipeline/steps/email-ext/
希望这能在一定程度上有所帮助。
关于git - Jenkins 向来自 GitHub 的用户发送电子邮件通知,该用户在 dev 分支中推送了提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51253425/
我使用 Git 有一段时间了,但尽管在博客和教程上花了很多时间,但我仍然无法理解某些功能...:) 我正在与其他人合作一个项目,我的老板为此在 bitBucket 上创建了一个存储库。 我在本地克隆了
有时我会遇到以下问题: 在功能分支中添加一些提交。 从上游更新 master。 想要查看功能分支和 master 之间的差异,但是 git diff master 显示了在 master 中添加/删除
我使用的是 Gerrit 2.4.2 版。我有一个分支 master,我创建了一个名为 newbranch 的新分支。然后我将一些更改推送到远程(Gerrit 的)newbranch。在 Gerrit
假设我们有一个远程存储库并在本地克隆它。 我们 checkout master 分支,所以现在我们有本地 master 和一个 Remote remotes/origin/master . 然后我必须
我有一个项目,其中开发分支使用 CocoaPods,但其中一位开发人员决定删除它并改用 Carthage。 feature 分支使用的是 CocoaPods,因为它是在 develop 分支转换之前一
我有一个有问题的 master 分支需要调试。为此,我想插入一堆调试程序(例如,打印变量),查明错误并应用修复程序。稍后,我想将修复 merge 到 master 分支中,但我不想跳过调试更改。 #
我有一个 master 分支,我正在其中 push 我的最新开发。 现在在某个时候,我确实从 master 分支发布并创建了名为 release1 的新分支。 现在我在master分支上做新的开发 与
我正在尝试使我的一些标准工作流程自动化,我发现自己经常做的一件事是将对远程 master 分支的更改 merge 到我自己的本地分支并推送结果。 所以步骤如下: 转为大师 从远程 pull 更改 切换
使用 Gerrit 很容易意外地将开发分支中的不稳定代码 merge 到稳定分支中: $ git checkout develop $ commit $ git push origin HEAD:re
我有一个正在进行的项目,我正在雇用承包商来帮助我处理代码的某些部分。问题是我不想让任何一个承包商看到所有这些。 我可以在 GitHub 上为他们分配私有(private)存储库下的分支吗?这需要命令行
SVN 分支 Branch 选项会给开发者创建出另外一条线路。当有人希望开发进程分开成两条不同的线路时,这个选项会非常有用。我们先假设你已经发布了一个产品的 1.0 版本,你可能想创建一个新的分支,
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 2年前关闭。 Improve this
有没有办法从特定的修订版中创建(svn)分支, 因为我想跳过提交历史中的一些修订(在新分支中)。 例如,我有从 1 到 1590 的修订,我想创建一个新分支并跳过提交(从 1504 到 1574 )和
到目前为止我看到的所有 svn 分支的例子都是这样的 svn cp -m 'Making test branch' svn://svnrepo/hellosite svn://svnrepo/hell
当我尝试使用 Sonar 扫描仪分析我的项目时,扫描失败并显示以下错误消息: Caused by: Branch does not exist on server: develop 显然,这只发生在它
在我的 Mercurial 存储库中,不知何故,有人输入了空白分支名称: 如果我hg id -r 2004,我确实得到空白文本。现在的问题是,这会导致我们的Redmine安装出现问题,因为它无法同步存
我有以下代码片段: srcaddr >= inet_ntoa . fromJust dstaddr >= inet_ntoa . fromJust -- I want to perform actio
在我的项目中,我有用于工作的本地分支和网络驱动器上的分支我在本地一号和网络一号之间做了“绑定(bind)分支”我的想法是使用绑定(bind)选项自动备份每个本地提交。 我在本地分支提交文件后,我在网络
我想创建一个脚本,根据变量的状态使用不同的表和命令执行不同的操作。在 T-SQL 中,我会这样做: DECLARE @whatToDo INT = 1; IF @whatToDo = 1 BEGIN
Write a program that reads input up to # and reports the number of times that the sequence ei occurs
我是一名优秀的程序员,十分优秀!