【问题标题】:How to set retention policy in Drone CI如何在 Drone CI 中设置保留策略
【发布时间】:2017-10-03 13:25:12
【问题描述】:

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

【问题讨论】:

    标签: continuous-integration drone.io


    【解决方案1】:

    Drone 没有用于清除或归档数据的内置机制。话虽如此,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 或您选择的数据库管理软件来安排它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-27
      相关资源
      最近更新 更多