指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
semantic-release的使用
1.安装
npm install semantic-release
根据需要还需要单独安装
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/github"


下面这两个,semantic-release 会间接依赖,然后安装
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",


2.配置文件 .releaserc.json
类似下面的结构(根据实际情况调整)
"release": {
  "branches": ["main", "next"],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    "@semantic-release/changelog",
    "@semantic-release/npm",
    "@semantic-release/git",
    "@semantic-release/github"
  ]
}

目前我项目配置:
{
  "branches": ["master"],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    [
      "@semantic-release/changelog",
      {
        "changelogFile": "docs/CHANGELOG.md"
      }
    ],
    [
      "@semantic-release/gitlab",
      {
        "gitlabUrl": "https://gitlab.duoxiaozhan.com:8081",
        "gitlabApiPathPrefix": "/api/v4/",
        "verifyConditions": [],
        "failComment": false,
        "failTitle": false,
        "assets": [
          { "path": "dist/*", "label": "Built assets" },
          { "path": "docs/CHANGELOG.md", "label": "Changelog" },
          { "path": "package.json", "label": "package.json" }
        ]
      }
    ],
    "@semantic-release/npm",
    [
      "@semantic-release/git",
      {
        "assets": ["package.json", "docs/CHANGELOG.md", "dist/*"],
        "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
      }
    ]
  ]
}

重点说下
@semantic-release/npm 会在发布 npm 包时 自动调用 npm 命令(如 npm publish 或 npm pack)来上传包。
它会在当前环境(CI 或本地)寻找 .npmrc 文件,使用其中的配置和认证信息

对于 .npmrc: 可以配置私有仓库的地址以及token信息


3.执行
"scripts": {
  "semantic-release": "semantic-release"
}

npm run semantic-release

在git提交的使用分析
这条 Git 提交记录:
chore(release): 3.10.0 [skip ci]

遵循了 Conventional Commits 规范,并具有以下含义:


✅ 各部分含义解析:

1. chore

这是 提交类型(type),表示“杂项/构建任务”,不影响代码逻辑,例如构建、依赖升级、脚本更新等。

常见类型包括:

  • feat:新增功能
  • fix:修复 bug
  • docs:文档更新
  • style:代码格式修改(不影响功能)
  • refactor:重构
  • test:测试代码变更
  • chore:其他不属于以上类型的杂项

2. (release)

这是 可选的作用域(scope),指此次提交影响的是“发布流程”相关的内容。

3. 3.10.0

这是 提交说明(description),说明这是一次版本发布,发布的是 v3.10.0。

通常,这类提交是由自动化工具(如 semantic-release 或 standard-version)在发布版本时生成的。

4. [skip ci]

这是一个特殊的标记,用于告诉 CI 工具(如 GitLab CI、GitHub Actions、CircleCI 等)跳过此次提交的 CI/CD 流程,因为这个提交只是用于发布,不需要运行构建或测试。


🚀 总结这条提交做了什么:

这条提交说明:

  • 类型是 chore,代表杂项;
  • 作用是 release,说明它是版本发布相关的更改;
  • 发布的版本是 3.10.0;
  • [skip ci] 表示这次提交不需要运行 CI;
  • 极可能是自动工具生成的,不是手动写的。

✅ 这类提交的常见用途:

  • 自动发布版本并打 Tag;
  • 自动更新 CHANGELOG.md;
  • 和语义版本工具搭配使用(如 semantic-release, standard-version);
  • 保持 changelog、tag 和 package.json 版本号一致。

如果使用了 semantic-release 或类似工具来做自动版本管理,那么这种提交会自动出现在每次发布流程中。