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

如何修复CI流水线:支持自动按标签运行与手动指定默认值执行?

修复后的GitLab CI配置方案

问题出在两个核心点:

  1. $CI_JOB_MANUAL是作业级变量,无法在workflow规则层面生效,导致手动触发时规则不匹配,流水线被过滤。
  2. workflow规则内的变量赋值格式错误,应该用键值对而非数组形式。

修复后的完整配置如下:

stages:
  - build

workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_PIPELINE_SOURCE == "web"
      variables:
        CI_COMMIT_TAG: "manual"

build_app:
  script:
    - echo "Build completed"
  artifacts:
    expire_in: 30 days
    paths:
      - .
    name: "app-$CI_COMMIT_TAG"

关键改动说明:

  • 替换触发判断条件:用$CI_PIPELINE_SOURCE == "web"替代$CI_JOB_MANUAL——GitLab界面手动触发流水线时,CI_PIPELINE_SOURCE固定为web,该变量在workflow层面可正常识别。
  • 修正变量赋值格式:去掉数组符号-,改为直接赋值CI_COMMIT_TAG: "manual",符合GitLab CI的变量定义规范。

验证效果:

  • 执行git tag v2.4.1 && git push --tags时,流水线匹配$CI_COMMIT_TAG规则触发,生成制品app-v2.4.1.zip。
  • 通过界面「Pipeline --> Run pipeline」手动触发时,匹配$CI_PIPELINE_SOURCE == "web"规则,自动将CI_COMMIT_TAG设为manual,生成制品app-manual.zip。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:52:09