微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不需要 npm 的情况下设置语义发布?

如何解决如何在不需要 npm 的情况下设置语义发布?

我有一个 C# 项目,想向其中添加语义版本控制。因此,每当我推送到 main 分支时,我都想创建一个新版本并根据提交类型自动生成一个新版本号。我认为 semantic-release 做得很好,因为我已经将 commitlinthusky 一起使用。

用于复制:

.

name: Release

on:
  push:
    branches:
      - `main`

jobs:
  release:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Setup Node
        uses: actions/setup-node@v2
        with:
          node-version: 14.x

      - name: Install dependencies
        run: npm install

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.SEMANTIC_RELEASE }}
        run: npx semantic-release
  • 推送后,工作流应该会失败并显示以下错误消息

[2:51:48 PM] [语义发布] › ✔ 已完成插件步骤“失败” "@semantic-release/github" 一个 npm 令牌 (https://github.com/semantic-release/npm/blob/master/README.md#npm-registry-authentication) 必须在 NPM_TOKEN 环境变量中创建和设置 CI环境。

请确保创建一个 npm 令牌 (https://docs.npmjs.com/getting-started/working_with_tokens#how-to-create-new-tokens) 并将其设置在 CI 上的 NPM_TOKEN 环境变量中 环境。令牌必须允许发布到注册https://registry.npmjs.org/

聚合错误: SemanticReleaseError:未指定 npm 令牌。 在 module.exports (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/node_modules/@semantic-release/npm/lib/get-error.js:6:10) 在 module.exports (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/node_modules/@semantic-release/npm/lib/set-npmrc-auth.js:45:31) 在 module.exports (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/node_modules/@semantic-release/npm/lib/verify-auth.js:17:9) 在verifyConditions (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/node_modules/@semantic-release/npm/index.js:36:13) 在异步验证器 (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/lib/plugins/normalize.js:34:24) 在异步 /home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/lib/plugins/pipeline.js:37:34 在异步 Promise.all(索引 0) 在异步下一步(/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/node_modules/p-reduce/index.js:16:18) 在/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/lib/plugins/pipeline.js:54:11 在异步 Object.pluginsConf。 [as verifyConditions] (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/lib/plugins/index.js:80:11) 在异步运行时 (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/index.js:95:3) 在 async module.exports (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/index.js:260:22) 在 async module.exports (/home/runner/.npm/_npx/1561/lib/node_modules/semantic-release/cli.js:55:5) 错误:进程已完成,退出代码为 1。

我不想发布到 npm 注册表,它应该只是创建一个新的发布版本。

我是否遗漏了什么,或者语义释放是我项目的错误工具?

解决方法

您不必发布到 npm 注册表。您可以在 .releaserc 中进行设置。

{
  "plugins": [
    ["@semantic-release/npm",{
      "npmPublish": false,}],]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。