npm 包 semantic-release-slack-bot 使用教程

阅读时长 10 分钟读完

semantic-release-slack-bot 是一个基于 Node.js 的 npm 包,它结合了 semantic-release,Slack 和 Slack bot 来自动对发布过程进行管理,并向 Slack 频道发送通知。

本文将介绍如何使用 semantic-release-slack-bot,以及如何在项目中实现自动版本发布,同时在 Slack 频道中获得即时通知。

安装

我们可以使用 npm 进行安装:

此时,semantic-release-slack-bot 已被安装到我们的项目中。

接下来,我们要配置 Semantic Release。

配置 Semantic Release

为了使 semantic-release-slack-bot 正常运作,我们需要先配置 Semantic Release,并在项目中安装其相关的插件。首先,我们需要在项目根目录下,创建 .releaserc.json 配置文件,来告诉 Semantic Release 应该如何发布项目版本。

我们可以使用 Semantic Release 的默认配置文件,也可以对其进行自定义。

默认配置文件 .releaserc.json

-- -------------------- ---- -------
-
  ----------- -----------
  ---------- -
    ------------------------------------
    --------------------------------------------
    ------------------------
    -
      ---------------------------
      -
        --------- -
          -
            ------- -------------------------
            ------- ------------------------
          --
          -
            ------- -----------------------------
            ------- --------------------------------
          --
          -
            ------- --------------
            ------- -----------------------
          -
        -
      -
    -
  -
-

我们可以看到,Semantic Release 使用了一系列插件来管理版本发布的过程。其中 @semantic-release/commit-analyzer@semantic-release/release-notes-generator 用于自动生成版本日志,@semantic-release/npm 用于管理 npm 包的发布,@semantic-release/github 则用于管理 GitHub release。

上述配置文件中配置的语义化版本号规则为 Angular 规范,具体可以参考 Angular 规范

安装插件

在完成 Semantic Release 配置文件的配置之后,我们需要安装其相关的插件。

配置环境变量

我们需要在 GitHub 上创建一个 token,用于访问 GitHub API。在创建 token 时,需要为其授予项目管理和发布 release 的权限。

我们还需要在项目中添加一个环境变量 GH_TOKEN,其值为刚刚创建的 token。

具体操作:进入项目 Settings -> Secrets,点击 "New repository secret",然后创建名为 GH_TOKEN 的新密钥,并将其值设置为刚刚创建的 GitHub token。

配置 Git

为了使 Semantic Release 能够顺利工作,我们需要设置 Git 的账户信息。

在命令行中执行下列 Git 配置:

发布项目版本

在完成以上配置之后,我们可以使用以下命令来发布项目版本:

运行该命令后,Semantic Release 会根据我们在 .releaserc.json 中的配置,自动执行前面介绍的一系列插件,生成版本 tag,并将其发布到 npm 上,同时在 GitHub 上创建一个新的 release。

如果你已经启用了 GitHub Action,那么你就可以不用手动执行上述命令。GitHub Action 会自动执行这个操作。

配置 Semantic Release Slack Bot

以上是 Semantic Release 的使用方式,接下来我们将讨论如何配置 semantic-release-slack-bot。

创建 Slack App 和 Bot

首先,我们需要创建一个 Slack App,并为其创建一个 bot。可以在 Slack API 官网 上新建一个 App。

在 App 创建完成后,我们可以通过 "Add features and functionality" -> "Bots" 来为 App 创建 bot。

创建 Bot 完成后,需要将其添加到我们的工作区。在成功添加 bot 到工作区之后,我们可以获得一些 Bot 信息:

  • Bot 名称(bot name)
  • Bot Token(bot token)

这些信息在后续的配置中非常关键。

安装 Semantic Release Slack Bot

在使用 npm 安装 semantic-release-slack-bot 前,我们需要先为其配置一些信息。

在项目根目录下创建 .env 文件,并填写以下内容:

其中,bot tokenbot namechannel idbot icon url 指的是我们刚刚创建的 Slack bot 的相关信息。

配置发布流程

我们需要将 semantic-release 和 semantic-release-slack-bot 结合使用,从而实现在发布过程中通过 Slack bot 进行通知。

我们可以在 .releaserc.json 中配置以下信息:

-- -------------------- ---- -------
-
  ----------- -----------
  ---------- -
    ------------------------------------
    --------------------------------------------
    ------------------------
    -
      ---------------------------
      -
        --------- -
          -
            ------- -------------------------
            ------- ------------------------
          --
          -
            ------- -----------------------------
            ------- --------------------------------
          --
          -
            ------- --------------
            ------- -----------------------
          -
        -
      -
    --
    -
      -----------------------------
      -
        ------------ -
          ------ -
            ------------- -----
            ---------------- ----
          -
        -
      -
    -
  -
-

Semantic Release Slack Bot 支持全局配置和插件级配置。

在全局配置中,我们可以配置 notifyFailnotifySuccess 两个属性,用来指明在版本发布失败或成功时是否向 Slack 频道发送通知消息。

发布版本

在完成以上操作之后,我们可以使用以下命令来发布版本:

当我们使用该命令发布版本时,semantic-release-slack-bot 将使用我们在 .env 文件中配置的信息,自动向 Slack 频道发送通知消息,告知版本发布状态。

示例代码

  1. .env 文件中添加以下配置:
  1. .releaserc.json 文件中添加以下配置:
-- -------------------- ---- -------
-
  ----------- -----------
  ---------- -
    ------------------------------------
    --------------------------------------------
    ------------------------
    -
      ---------------------------
      -
        --------- -
          -
            ------- -------------------------
            ------- ------------------------
          --
          -
            ------- -----------------------------
            ------- --------------------------------
          --
          -
            ------- --------------
            ------- -----------------------
          -
        -
      -
    --
    -
      -----------------------------
      -
        ------------ -
          ------ -
            ------------- -----
            ---------------- ----
          -
        -
      -
    -
  -
-
  1. 发布版本。

执行以下命令进行版本发布:

版本发布完成后,Semantic Release Slack Bot 会将消息发送到 Slack 频道中。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f79603c7116197505561b40

纠错
反馈