合并请求关闭时触发 GitLab 作业

Ham*_*amy 6 cluster-computing gitlab docker gitlab-ci gitlab-ci-runner

我正在寻找一种在 GitLab 合并请求关闭(合并与否)时运行“清理”作业/管道/等的方法。

问题是这样的 - 每当打开合并请求时,我们都会在集群上创建功能部署。目前,我没有检测 MR 何时关闭的机制。随着时间的推移,这些旧的“功能部署”会在集群上累积。

我可以从集群中编写一个手动清理脚本(查看所有打开的功能,删除不再存在的功能),但这会有点麻烦而且容易出错。希望 GitLab 有一种方法可以使用非常简单/很好的管道+作业功能来进行此类清理

Den*_*oef 0

我们使用 GitLab 环境来审核应用程序。环境可以在 x 周后自动停止environment.auto_stop_in。这样做的优点是,当 MR 保持开放数月(因为它们可能会被遗忘)时,数据将在 x 周后清理(我们使用 2 周)。

在脚本中,您可以执行任何需要清理的操作。就像我们的例子一样,一个helm uninstall.

gitlab-ci.yaml

deploy_review:
  stage: deploy
  script: "./deploy_review.sh"
  environment:
    auto_stop_in: 2 weeks
    name: review/$CI_COMMIT_REF_SLUG
    on_stop: stop_review_app
    deployment_tier: development
  resource_group: deploy-review-$CI_COMMIT_REF_SLUG

stop_review_app:
  stage: after_deploy
  when: manual
  only:
  - branches
  variables:
    GIT_STRATEGY: none
  script: "./stop_review_app.sh"
  environment:
    name: review/$CI_COMMIT_REF_SLUG
    action: stop
Run Code Online (Sandbox Code Playgroud)