如何在 Drone CI 中设置保留策略

How to set retention policy in Drone CI

我使用的是 Drone-CI 工具的 0.8 版本。我只想保留最后 10 个版本。是否可以在当前版本中配置保留策略?如果可以,我该怎么做?

Drone 没有用于清除或存档数据的内置机制。话虽如此,无人机是一个关系数据库,这意味着您可以连接并执行查询以清除数据。

存在一个 github 问题,其中包含一个用于清除数据的示例脚本: https://github.com/drone/docs/issues/238

-- delete old logs
DELETE FROM logs WHERE log_job_id IN (
  SELECT proc_id FROM procs WHERE proc_build_id IN (
    SELECT build_id
    FROM repos, builds
    WHERE repo_id = build_repo_id 
    AND build_number < repo_counter - 20
  )
);

-- delete old procs
DELETE FROM procs WHERE proc_build_id IN (
  SELECT build_id
  FROM repos, builds
  WHERE repo_id = build_repo_id 
  AND build_number < repo_counter - 20
);

-- delete old builds
DELETE FROM builds WHERE build_id IN (
  SELECT build_id
  FROM repos, builds
  WHERE repo_id = build_repo_id 
  AND build_number < repo_counter - 20
);

根据 github 问题,上述脚本可能需要修改才能用于生产环境。所以请根据需要进行测试和修改。

一旦脚本按照您的喜好运行,就可以使用简单的 cronjob 或您选择的数据库管理软件来安排它。