@ 持续- auth/ 语义- 释放- npm
语义释放 发布一个插件 无 使用软件包 非洲金融共同体 2FA代码.
| 步骤 | 说明 |
|---|---|
verifyConditions | 验证是否存在 NPM_TOKEN 环境变量,或 .npmrc 文件,并验证认证方法有效. |
prepare | 更新 package.json 版本和 创建 npm包装柏油球. |
addChannel | 将释放添加到 Dist- tag。 。 。 . |
publish | 发布 npm 软件包 登记. |
安装
$ npm install @continuous-auth/semantic-release-npm -D
使用量
插件可以在 语义释放 配置文件数字 :
{
"plugins": ["@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", "@continuous-auth/semantic-release-npm"]
}
配置
npm 注册认证
时间 符号 认证配置为 所需经费 并可以通过 环境变量。 。 。 .
自动化令牌是推荐的,因为它们可以用于自动化工作流程,即使您的账户被配置为使用 auth-and-writes 2FA级。 。 。 .
npm 来源
如果你正在向官方登记处公布 你的管道在 npm 支持来源的提供者,npm可以配置为 以来源出版。 。 。 .
由于语义上-放行会包裹npm发布命令,因此配置出处不会被直接曝光.
相反,出处可以通过 npm 曝光的其他配置选项。 。 。 .
证据专门适用于出版,所以我们的建议是: publishConfig 内部 package.json。 。 。 .
gitHub 动作上的 npm出处
要在 GitHub 动作 CI 上签名, 软件包出处需要以下权限 用于工作:
permissions:
id-token: write # to enable use of OIDC for npm provenance
值得注意的是,如果你使用语义 - 释放到它最充分的 一个GitHub发布,GitHub评论, 和其他特征,然后 需要更多权限 用于此工作:
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
id-token: write # to enable use of OIDC for npm provenance
参见 Npm 包出处的 GitHub 动作配方 用于完整 CI 任务的 YAML 代码示例 .
环境变量
| 变量 | 说明 |
|---|---|
NPM_TOKEN | 通过 Npm 符号创建 npm 符号创建 |
CFA_PROJECT_ID | 关于非洲金融共同体的项目ID |
CFA_SECRET | 为此寄存器配置了 CAF 上的秘密 |
选项
| 选项 | 说明 | 默认 |
|---|---|---|
npmPublish | 是否发布 npm 软件包。 若为 false 页:1 package.json 版本仍将更新. | false 若为 package.json 私营 属性是 true, (中文(简体) ), true 否则. |
pkgRoot | 要发布的目录路径 . | . |
tarballDir | 用于写包沥青球的目录路径 。 若为 false 文件系统不保存柏油球. | false |
说明编号: pkgRoot 目录必须包含 package.json。该版本将在 package.json 财务报告和审定财务报表 npm-shrinkwrap.json 内部 pkgRoot 目录.
说明: 如果使用 可共享配置 定义其中之一的选项,您可以设置为 false 在你身边 语义释放 配置 以使用默认值.
npm 配置
该插件使用 npm 国 际 读取配置 .npmrc。见 npm config 用于选项列表.
这个 registry 可以通过 npm 环境变量配置 NPM_CONFIG_REGISTRY 并优先于 .npmrc。 。 。 .
这个 registry 财务报告和审定财务报表 dist-tag 可以在 publishConfig 输入 package.json数字 :
{
"publishConfig": {
"registry": "https://registry.npmjs.org/",
"tag": "latest"
}
}
页:1数字 :
- 存在
.npmrc文件将覆盖任何指定的环境变量. - 存在
registry或者说dist-tag下级publishConfig输入package.json将优先于配置.npmrc财务报告和审定财务报表NPM_CONFIG_REGISTRY
实例
这个 npmPublish 财务报告和审定财务报表 tarballDir 选项可以用来跳过发布到 npm 注册,然后用另一个插件释放包式柏油球。 例如,与 @semantic-release/ github (英语) 插件 :
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@continuous-auth/semantic-release-npm",
{
"npmPublish": false,
"tarballDir": "dist"
}
],
[
"@semantic-release/github",
{
"assets": "dist/*.tgz"
}
]
]
}
当从一个子目录中出版时 pkgRoot 选项 package.json 财务报告和审定财务报表 npm-shrinkwrap.json 使用新版本更新的可移动到另一个带有 postversion。例如,与 @semantic-release/ git (英语) 插件 :
{
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
[
"@continuous-auth/semantic-release-npm",
{
"pkgRoot": "dist"
}
],
[
"@semantic-release/git",
{
"assets": ["package.json", "npm-shrinkwrap.json"]
}
]
]
}
{
"scripts": {
"postversion": "cp -r package.json .. && cp -r npm-shrinkwrap.json .."
}
}