【问题标题】:Jenkins email notification to user from GitHub who pushed a commit in dev branchJenkins 向来自 GitHub 的用户发送电子邮件通知,该用户在开发分支中推送了一个提交
【发布时间】:2018-07-09 20:18:39
【问题描述】:

我有一种情况,所有开发人员都在开发分支中工作,并且只将所有提交推送到该开发分支。一位看门人会查看这些更改并将其合并到主分支。

在 Jenkins 中,我有一个由推送到主分支触发的工作。我想设置一个构建后操作来检查构建是否失败,然后向开发人员发送一封电子邮件,该开发人员在开发分支中的推送导致构建失败,而不是将电子邮件发送给合并开发人员的看门人更改到主分支并触发构建。我该怎么做?

【问题讨论】:

    标签: git jenkins github msbuild


    【解决方案1】:

    这是我们遵循的以下程序,建议使用与此类似的程序:

    1) 只允许从 PR 合并到 Develop 分支

    所有开发人员的更改只能通过 PR-Pull 请求推送到 dev 分支。以这样一种方式进行配置,即应通过最少的检查以允许 PR 合并开发。

    这样,所有将要合并到开发分支中的更改都将得到验证,并且开发人员有责任确保检查被清除以进行合并,并且不再让看门人头疼。

    添加快照以供参考。

    更新:Git 流程策略

    来源:https://nvie.com/posts/a-successful-git-branching-model/?

    2) 定义管道和多分支

    如果您已经在 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 项目类型使您能够为同一项目的不同分支实现不同的 Jenkinsfiles。在多分支流水线项目中,Jenkins 会自动发现、管理和执行源代码控制中包含 Jenkinsfile 的分支的流水线。

    创建多分支管道请参考这里:https://jenkins.io/doc/book/pipeline/multibranch/

    GitHub Organization Folder 使 Jenkins 能够监控整个 GitHub 组织并自动为包含分支和包含 Jenkinsfile 的拉取请求的存储库创建新的多分支管道。

    3) 启用电子邮件转接

    此处的示例 sn-p 将触发已提交代码的开发人员的通知。

    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/

    希望这在一定程度上有所帮助。

    【讨论】:

    • 如果您可以明确第一点关于 master 和 feature 分支的位置,那么我会更容易更好地理解它,并且通过第二步是否可以尽快建立一个新分支从本地 git 推送到 github。谢谢
    • @dasrakhadka:根据需要更新,如果还有其他需要,请告诉我。
    • 非常感谢您的澄清。
    猜你喜欢
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    相关资源
    最近更新 更多