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

GitLab CI/CD流水线Deploy阶段未执行问题排查求助

解决GitLab CI/CD中Terraform Deploy阶段未触发的问题

常见排查方向及解决办法

1. 核对阶段定义与任务的stage字段一致性

确保.gitlab-ci.yml中stages列表包含deploy(GitLab CI/CD对大小写敏感),且Deploy任务的stage字段拼写完全匹配:

stages:
  - validate
  - plan
  - deploy  # 确认此处存在且拼写正确

deploy:
  stage: deploy  # 必须和stages里的名称完全一致
  script:
    - terraform apply -auto-approve

2. 排查任务的触发条件(only/except/rules)

如果Deploy任务设置了only、except或rules,检查当前分支、标签或事件是否满足条件:

  • 比如设置了only: main但当前在dev分支,任务不会触发
  • 使用rules: - if: $CI_COMMIT_BRANCH == "main"替代旧规则时,确保条件逻辑正确
  • 可临时添加rules: - when: always测试是否是触发条件导致的问题

3. 确认前置阶段执行状态

GitLab CI/CD默认按阶段顺序执行,只有前置阶段全部成功,后续阶段才会启动:

  • 查看流水线截图中前置阶段(如plan)的状态,若失败或被跳过,Deploy阶段不会触发
  • 若需前置阶段失败时仍运行Deploy,可给Deploy任务添加when: always,但此配置会忽略前置失败,需谨慎使用

4. 检查是否设置手动触发

如果Deploy任务配置了when: manual,则不会自动触发,需在GitLab流水线页面手动点击运行:

deploy:
  stage: deploy
  script:
    - terraform apply -auto-approve
  when: manual  # 此配置会将任务设为手动触发

若要自动运行,删除或注释掉该配置即可

5. 验证Runner配置

  • 检查项目Runner是否可用,是否有匹配Deploy任务tags的Runner:如果任务指定了tags但无对应Runner,任务会卡住无法启动
  • 查看项目设置中CI/CD > Runners,确认有在线且匹配标签的Runner

6. 排查Terraform相关逻辑影响

  • 确认terraform plan阶段生成了有效执行计划,若输出"no changes",部分自定义逻辑可能会跳过Deploy,需检查是否有相关配置
  • 验证Terraform状态文件加载正常,无权限或路径问题导致任务无法执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 04:31:03