如何通过Github Actions配合semantic-release Github插件发布整个目录?
解决方案
@semantic-release/github 插件本身不支持直接上传目录为单个附件,配置路径为目录时默认会遍历上传目录内所有文件,你需要在CI流程中先将dist目录打包为单个压缩包,再配置插件上传该压缩包即可。
步骤1:修改CI工作流配置,新增打包步骤
在ci.yml的Run build步骤之后、Release步骤之前,新增打包dist目录的步骤:
- name: Run build run: npm run build # 新增以下打包步骤 - name: Package dist as compressed archive run: tar -zcvf dist.tar.gz dist/ - name: Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: npx semantic-release --branches main
如果需要生成zip格式压缩包,将打包命令替换为:zip -r dist.zip dist/
步骤2:修改semantic-release配置,指向压缩包
将.releaserc.json中@semantic-release/github插件的assets路径修改为打包后的压缩包路径:
{ "plugins":[ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", [ "@semantic-release/github", { "assets":[ { "path":"dist.tar.gz", "label":"foo-${nextRelease.gitTag}.tar.gz" } ] } ] ] }
如果同时生成了tar.gz和zip两种格式的压缩包,可在assets数组中添加两个配置项分别对应两个文件即可。
修改后重新运行工作流,就会在Github Release中仅上传单个dist压缩包作为附件。
内容的提问来源于stack exchange,提问作者Question3r
相关产品推荐
相关产品推荐

