博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
删除Jenkins JOB后清理workspace
阅读量:6948 次
发布时间:2019-06-27

本文共 1407 字,大约阅读时间需要 4 分钟。

  hot3.png

如果Jenkins使用的Master-Slave多节点架构,删除Jenkins JOB后,相应JOB的slave节点的workspace不会被删除

stackoverflow上有相关的问答:

google groups上有相关的讨论:

所以需要自行处理,于是用脚本实现该功能

具体思路是:

  • 遍历jenkins节点的workspace,根据路径解析获得jenkins job name
  • 如果该job不存在(通过python jenkinsapi实现),则删除相应的workspace 
    • 暂不考虑自定义的workspace
  • 需要在jenkins每个节点上进行处理(可以在jenkins上创建job,将job绑定到相应slave上;也可以在相应slave上直接运行脚本)

相关的Python脚本如下: 

# -*- coding: utf-8 -*-import osimport shutilimport loggingfrom jenkinsapi.jenkins import Jenkinslogging.basicConfig(level=logging.INFO)logger = logging.getLogger(__file__)def get_jenkins_instance():    jenkins_url = "http://jenkins.example.com"    jenkins_username = "username"    jenkins_password = "password"    return Jenkins(jenkins_url, username=jenkins_username, password=jenkins_password)def clean_workspace():    jenkins_instance = get_jenkins_instance()    jenkins_workspace_path = "/opt/JENKINS_HOME/workspace/"    for dirpath, dirnames, filenames in os.walk(jenkins_workspace_path):        if dirpath == jenkins_workspace_path:            for dirname in dirnames:                jenkins_job_name = dirname                # 如果job被删除,则清理相应的workspace                if not jenkins_instance.has_job(jenkins_job_name):                    logger.info("removing workspace dir of job:%s" % dirname)                    shutil.rmtree(os.path.join(dirpath, dirname))if __name__ == "__main__":    clean_workspace()

 

转载于:https://my.oschina.net/donhui/blog/677935

你可能感兴趣的文章
spring-mvc学习1
查看>>
卸载 windows search (KB940157)
查看>>
JAVA IO - list files/direcotries
查看>>
线程池的一些原理
查看>>
计算机存储单位
查看>>
在Html写好的HighChart,迁移入react Ant框架中使用
查看>>
firefox可以在debian jessie通过backports安装了
查看>>
【Android 栈顶app】adb 查看最上层成activity名字
查看>>
Log4j知识汇总
查看>>
Common Lisp牛顿法求平方根
查看>>
Activity 全屏显示
查看>>
做的一个android服务器获取数据json
查看>>
JPA主键生成器和主键生成策略
查看>>
关于HttpURLConnection的使用
查看>>
利用st_geometry将几百万条数据的普通数据库表转换成图形表
查看>>
codewars-014: k-Primes
查看>>
HashMap简单的实现ThreadLocal
查看>>
intellj激活
查看>>
身份证号码验证算法
查看>>
根据月份算出当月有多少天
查看>>