npm 包 semantic-sf-release 使用教程

阅读时长 6 分钟读完

简介

Semantic-sf-release 是一个基于 semantic-release 的构建工具,专为 Salesforce 创作的 npm 包提供封装。它使用 git 的标记来管理版本控制,将版本号格式化为 SemVer({major}.{minor}.{patch}),自动创建 GitHub Release,以及将变更日志写入 Release。Semantic-sf-release 也支持 SalesForce OpenCTI 软件包和 unmanaged package 管理。

安装

配置

package.json 中添加以下配置:

-- -------------------- ---- -------
---------- -
  ---------- ----------------------------------
  ------------ -------------------------
  ---------- -
    ------------------------------------
    --------------------------------------------
    -
      ---------------------------------------------------
      -
        ---------- ------
        -------------- ----------------
        ----------------- ---
        -------------- --
      -
    --
    -
      ------------------------
      -
        --------- ---------------- --------------
      -
    --
    -
      ---------------------------
      -
        --------- ----------------
      -
    -
  -
-
  • extends: 指向一个公共的配置文件。在此配置文件中,将定义发布通知以及其他自定义配置。

  • tagFormat: Tag 格式,需要是版本号(SemVer)。标签将作为 Git 标签来创建。

  • plugins: 插件列表,将在发布前启用。这里定义了 @semantic-release/commit-analyzer@semantic-release/release-notes-generator@semantic-sf-release/salesforce-packaging-plugin@semantic-release/git 以及 @semantic-release/github。您可以使用这些插件为您的发布流程添加其他自定义功能。

使用

提交规范

首先,您需要使用提交规范。提交规范的格式需要符合 Conventional Commits 的定义。以下是一个例子:

这个编写格式包含三个部分:

  1. feat:用于标识提交类型,比如 featfixdocs 等。

  2. (Authentication):用于说明这个提交的影响范围。

  3. add support for OAuth2 authentication:用于说明这个提交的详细内容。

在这种提交规范下,每个提交都将根据其类型、影响范围以及详细内容自动生成版本控制信息。

发布

当您使用 semantic-sf-release 时,它会自动创建以下版本标记:

  • Commit message 中包含 fixfeatperf 的提交将产生新版本。

  • 手动运行 npm run release 将触发一个新版本的发布。

在任一情况下,semantic-sf-release 都将自动为新版本创建 GitHub 和 Salesforce 发布,并将您的变更日志填充到 GitHub Release 的正文中。它还会根据指定的上传文件列表自动为发布添加附件。有了这些自动化,您就不再需要手动编辑您的版本控制信息或手动创建发布。

示例代码

以下是一个例子:

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

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

纠错
反馈