You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用GitLab semantic-release:如何将Artifacts添加为发布资产?

把GitLab CI制品添加为semantic-release发布资产的方法

要让semantic-release自动把CI生成的Artifacts挂载到GitLab发布页面,核心是配置semantic-release的GitLab插件,指定要上传的资产路径。以下是具体修改步骤:

1. 新增semantic-release配置文件

在项目的release目录(你运行semantic-release的目录)下创建.release.yml,配置GitLab插件的assets参数,指定要上传的文件:

plugins:
  - "@semantic-release/changelog"
  - "@semantic-release/git"
  - [
      "@semantic-release/gitlab",
      {
        assets: [
          # 路径相对于release目录,指向frontend的dist产物
          { path: "../frontend/dist/**/*", label: "前端构建包" },
          # 如果有其他制品,继续加在这里,比如后端包
          # { path: "../backend/build/*.jar", label: "后端服务包" }
        ]
      }
    ]

label是显示在发布页面的资产名称,可以自定义。

2. 优化CI脚本的依赖安装方式

别再全局装semantic-release包了,把依赖写到release目录的package.json里更靠谱:
先在release目录建package.json:

{
  "devDependencies": {
    "@semantic-release/changelog": "^6.0.3",
    "@semantic-release/git": "^10.0.1",
    "@semantic-release/gitlab": "^12.0.2",
    "conventional-changelog-conventionalcommits": "^7.0.2",
    "semantic-release": "^22.0.12"
  }
}

然后修改CI的script部分:

script:
  - cd frontend
  - npm install
  - npm run build
  - rm -rf $(ls -A | grep -v dist) # 只保留dist目录
  - cd ../release
  - npm install # 安装本地依赖,替代全局安装
  - npx semantic-release # 直接运行,GL_TOKEN会自动读取CI环境变量
  # 删掉rm -rf ../.git/这行,没必要删除项目的git目录

3. 调整CI Artifacts配置(可选)

当前你的Artifacts会打包整个项目,建议只保留需要的产物,减少打包体积:

artifacts:
  name: "dashboard-$CI_COMMIT_SHA"
  paths:
    - frontend/dist/
  exclude:
    - frontend/dist/**/*.map # 如果不需要sourcemap可以排除

注意事项

  • 路径一定要对应:semantic-release的assets.path是相对于你运行它的目录(也就是release目录),别写错路径导致找不到文件。
  • GL_TOKEN权限:确保这个token有项目的Maintainer或以上权限,不然传不上资产。
  • 插件版本:尽量用最新的semantic-release插件版本,避免兼容性问题。

这样配置后,每次semantic-release触发发布时,都会自动把你指定的制品上传到GitLab的发布页面,作为发布资产显示出来。

内容的提问来源于stack exchange,提问作者blue_e

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 23:27:22