【问题标题】:How to run custom behavior on new releases on GitHub?如何在 GitHub 上的新版本上运行自定义行为?
【发布时间】:2016-12-13 17:15:26
【问题描述】:

我想实现以下行为:每当我在 GitHub 上的存储库中有新版本时,构建项目,然后将其发布到 Slack 上,其中包含自上次发布以来的所有提交的更改日志。在我看来,这似乎是一个相对简单的任务,而且会得到很好的支持。

所以我查看了诸如 CircleCI、Jenkins 和 TeamCity 之类的持续集成工具,它们似乎都没有原生支持此功能。

有没有开箱即用的工具?如果不是,那么在什么环境中实现它的最佳环境是什么? CI 工具是最好的方法吗?

【问题讨论】:

    标签: git github continuous-integration devops


    【解决方案1】:

    我认为无论使用 git 标签的 CI 工具如何,您都可以完成您正在寻找的东西。每次发布时首先在提交中添加一个 git 标签,然后在每次构建期间运行以下命令并将输出发送到 slack

    git log <last_released_tag>..HEAD
    

    编辑:这是一个使用 jenkins 管道的未经测试的示例,依赖于 jenkins 的 this slack 插件

    node mynode {
       def mytag
       def mychangelog
       mytag = sh (git describe --abbrev=0).trim()
       mychangelong = sh(git log ${mytag}..HEAD).trim()
       slackSend channel: '#mychannel', color: 'good', message: '${mychangelog}', teamDomain: 'mydomain', token: 'mytoken'
    }
    

    【讨论】:

    • 当然。我的问题是关于自动化这个过程,这样每当有新版本发布时,构建的项目就会自动发布到 Slack,并会生成更改日志git log。在本地做很简单
    • 我在上面提供了一个詹金斯的例子。我在 travis CI 中也用 rake 做过类似的事情。
    猜你喜欢
    • 2021-05-09
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 1970-01-01
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-30
    相关资源
    最近更新 更多