Skip to content

使用 changesets 的官方 github 工作流实现发包

使用该工作流,同时生成 github release 发行记录,和 changelog 变更日志文件。

想办法同时实现 github release 和 changelog 的生成

在一次提交内,实现两个 github release 的发布,并给各自的子包生成 changelog 文件。

2025-07-01-22-16-56

2025-07-02-18-04-43

总是说 404 错误

无法发包,总是说 404 错误。

log
error an error occurred while publishing @xxxx/xxx: E404 Not Found - PUT https://registry.npmjs.org/@xxxx - Not found
error npm error 404  '' is not in this registry.
yaml
- name: 在 .npmrc 内写入token
  run: |
    cat << EOF > "$HOME/.npmrc"
      //registry.npmjs.org/:_authToken=$NPM_TOKEN
    EOF
  env:
    NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: 构建并发版
  id: changesets
  uses: changesets/action@v1
  with:
    commit: "chore: release package(s)"
    title: "chore: release package(s)"
    publish: pnpm release
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

配置 NODE_AUTH_TOKEN 环境变量即可,太坑了。要看官方 issue 才有相关的说明。

进度

现在确实实现了基于 changesets/action 工作流的发包,但是 github release 的报告是混杂混乱的。不是短小的增量提交。

要看看是不是非要实现完整的 pr 才能触发发包。

提交变更集

现在将变更集提交并合并到 main 分支内了,新建了分支,但是没有新建 pr。

log
Error: HttpError: Validation Failed: {"resource":"PullRequest","code":"custom","message":"No commits between main and changeset-release/main"} - https://docs.github.com/rest/pulls/pulls#create-a-pull-request
Error: Validation Failed: {"resource":"PullRequest","code":"custom","message":"No commits between main and changeset-release/main"} - https://docs.github.com/rest/pulls/pulls#create-a-pull-request

起因是我没有配置对正确的 version 命令。

整个发包的操作流程

  1. 提交变更集文件到 dev 内。
  2. 本地合并分支到主分支,生成 pr。
  3. 合并 pr,触发发包。

参考资料

其他尝试的记录

trigensoftware/simple-release-action

这个工作流,有点复杂,在 github action 内写的非常冗杂。

不能学。

semantic-release

这个 github action 写的比较简单,不清楚能不能完成发包。可以试试看。代替现在的发包写法。

贡献者

The avatar of contributor named as ruan-cat ruan-cat

页面历史