简介
Semantic-sf-release 是一个基于 semantic-release 的构建工具,专为 Salesforce 创作的 npm 包提供封装。它使用 git 的标记来管理版本控制,将版本号格式化为 SemVer({major}.{minor}.{patch}),自动创建 GitHub Release,以及将变更日志写入 Release。Semantic-sf-release 也支持 SalesForce OpenCTI 软件包和 unmanaged package 管理。
安装
npm install semantic-sf-release --save-dev
配置
在 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 的定义。以下是一个例子:
feat(Authentication): add support for OAuth2 authentication
这个编写格式包含三个部分:
feat
:用于标识提交类型,比如feat
、fix
、docs
等。(Authentication)
:用于说明这个提交的影响范围。add support for OAuth2 authentication
:用于说明这个提交的详细内容。
在这种提交规范下,每个提交都将根据其类型、影响范围以及详细内容自动生成版本控制信息。
发布
当您使用 semantic-sf-release
时,它会自动创建以下版本标记:
Commit message 中包含
fix
、feat
或perf
的提交将产生新版本。手动运行
npm run release
将触发一个新版本的发布。
在任一情况下,semantic-sf-release 都将自动为新版本创建 GitHub 和 Salesforce 发布,并将您的变更日志填充到 GitHub Release 的正文中。它还会根据指定的上传文件列表自动为发布添加附件。有了这些自动化,您就不再需要手动编辑您的版本控制信息或手动创建发布。
示例代码
以下是一个例子:
-- -------------------- ---- ------- - ------- ------------- ---------- -------- ------------- - ------- ------ ------ ------------------------------------------------ -- ----------- --- --------- ----- ---- ------------------- ---------- ------ ------- - ------ ----------------------------------------------- -- ----------- ------------------------------------------------ --------------- - --------- --------- -- ------------------ - ------------------------------ --------- ------------------------------------ --------- ------------------------ --------- --------------------------- ---------- -------------------------------------------- --------- --------------------------------------------------- -------- -- ---------- - ---------- ---------------------------------- ------------ ------------------------- ---------- - ------------------------------------ -------------------------------------------- - --------------------------------------------------- - ---------- ------ -------------- ---------------- ----------------- --- -------------- -- - -- - ------------------------ - --------- ---------------- -------------- - -- - --------------------------- - --------- ---------------- - - - - -
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600558b781e8991b448d6067