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

GitLab CI/CD 流水线执行完成后如何清理工作目录?

GitLab CI/CD 工作目录自动清理方案

GitLab CI 原生提供了对应的配置项,不需要手动编写带排除规则的rm命令:

1. 任务运行前清理:GIT_CLEAN_FLAGS变量

GitLab Runner默认会在每次任务启动前执行git clean清理工作目录的冗余文件,你可以通过GIT_CLEAN_FLAGS变量自定义清理规则,直接排除需要保留的artifacts文件即可:

# 全局生效,写在.gitlab-ci.yml顶部
variables:
  # 含义:清理所有未跟踪的文件/目录,排除artifacts对应的路径(示例中artifacts存放在dist目录)
  GIT_CLEAN_FLAGS: -ffdx --exclude=dist/

你也可以把变量写在单个job下,只对特定任务生效。

2. 任务结束后清理:after_script字段

artifacts的上传逻辑是在script阶段执行完成后、after_script阶段执行前触发的,所以你可以把清理逻辑放在after_script中,完全不需要手动排除artifacts文件,不用担心影响artifacts上传:

your_build_job:
  script:
    # 你的正常构建逻辑
    - npm run build
  artifacts:
    paths:
      - dist/
  after_script:
    # artifacts已经上传完成,直接清空整个工作目录即可
    - rm -rf ./*

3. Runner全局生效配置

如果你需要让该规则对Runner承接的所有项目生效,可以修改Runner节点上的config.toml配置,在对应[[runners]]块中添加pre_build_script(运行前清理)或post_build_script(运行后清理)配置项,写入对应的清理命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:15:03