用Python通过Jenkins View视图批量构建Jobs

这里用到了Jenkins的Python Module,所以先安装模块pip install python-jenkins

废话少说。

# coding:utf-8
import jenkins

def build_job_by_view(jenkins_server:jenkins.Jenkins,view_name:str):
    jobs = jenkins_server.get_jobs(view_name=view_name)
    for job in jobs:
        job_info = jenkins_server.get_job_info(name=job.get('name'))
        if 'com.cloudbees.hudson.plugins.folder.Folder' == job_info.get('_class'):
            folder_jobs = job_info.get('jobs')
            for folder_job in folder_jobs:
                full_jobname = job_info.get('fullName') +'/' +folder_job.get('name')
                print('building :',full_jobname)
                jenkins_server.build_job(name=full_jobname,parameters={'BRANCH':'dev','TEST':True})
        else:
            print('building :',job_info.get('fullName'))
            jenkins_server.build_job(name=job_info.get('fullName'),parameters={'BRANCH':'dev','TEST':True})


if __name__ == '__main__':
    views_list = ["view_nmae_1","view_name_2"]
    j_server = jenkins.Jenkins(url='http://jeknins.example.com:8080',username='username',password='password')
    for v in views_list:
        build_job_by_view(j_server,view_name=v)