def jenkins(): print('Looking for a running Jenkins instance') webapi = Jenkins('http://127.0.0.1:60888') print('Removing all jobs ...') for job in webapi.jobs: webapi.job_delete(job.name) print('Creating test jobs ...') configxml = 'master-job-svn-config.xml' configxml = open(configxml).read().encode('utf8') webapi.job_create('master-job-svn', configxml) return webapi
class JenkinsControl(object): war = pjoin(here, 'tmp/jenkins.war') cli = pjoin(here, 'tmp/jenkins-cli.jar') home = pjoin(here, 'tmp/jenkins') def __init__(self, addr='127.0.0.1:60888', cport='60887'): self.addr, self.port = addr.split(':') self.url = 'http://%s' % addr self.py = Jenkins(self.url) def start_server(self): cmd = pjoin(here, './bin/start-jenkins.sh 1>/dev/null 2>&1') env = { 'JENKINS_HOME': self.home, 'JENKINS_PORT': self.port, 'JENKINS_CPORT': self.cport, 'JENKINS_ADDR': self.addr } check_call(cmd, shell=True, env=env) def shutdown_server(self): cmd = 'echo 0 | nc %s %s' % (self.addr, self.cport) check_call(cmd, shell=True) def clean_home(self): rmtree(self.home) def createjob(self, name, configxml_fn): configxml = open(configxml_fn).read().encode('utf8') self.py.job_create(name, configxml) def getjobs(self): return {i.name: i for i in self.py.jobs} def enabled(self, name): return self.py.job(name).info['buildable'] def job_etree(self, job): res = self.py.job(job).config res = etree.fromstring(res) return res
class JenkinsControl(object): war = pjoin(here, "tmp/jenkins.war") cli = pjoin(here, "tmp/jenkins-cli.jar") home = pjoin(here, "tmp/jenkins") def __init__(self, addr="127.0.0.1:60888", cport="60887"): self.addr, self.port = addr.split(":") self.url = "http://%s" % addr self.py = Jenkins(self.url) def start_server(self): cmd = pjoin(here, "./bin/start-jenkins.sh 1>/dev/null 2>&1") env = { "JENKINS_HOME": self.home, "JENKINS_PORT": self.port, "JENKINS_CPORT": self.cport, "JENKINS_ADDR": self.addr, } check_call(cmd, shell=True, env=env) def shutdown_server(self): cmd = "echo 0 | nc %s %s" % (self.addr, self.cport) check_call(cmd, shell=True) def clean_home(self): rmtree(self.home) def createjob(self, name, configxml_fn): configxml = open(configxml_fn).read().encode("utf8") self.py.job_create(name, configxml) def getjobs(self): return {i.name: i for i in self.py.jobs} def enabled(self, name): return self.py.job(name).info["buildable"] def job_etree(self, job): res = self.py.job(job).config res = etree.fromstring(res) return res
class JenkinsControl(object): war = pjoin(here, 'tmp/jenkins.war') cli = pjoin(here, 'tmp/jenkins-cli.jar') home = pjoin(here, 'tmp/jenkins') def __init__(self, addr='127.0.0.1:60888', cport='60887'): self.addr, self.port = addr.split(':') self.url = 'http://%s' % addr self.py = Jenkins(self.url) def start_server(self): cmd = pjoin(here, './bin/start-jenkins.sh 1>/dev/null 2>&1') env = {'JENKINS_HOME': self.home, 'JENKINS_PORT': self.port, 'JENKINS_CPORT': self.cport, 'JENKINS_ADDR': self.addr} check_call(cmd, shell=True, env=env) def shutdown_server(self): cmd = 'echo 0 | nc %s %s' % (self.addr, self.cport) check_call(cmd, shell=True) def clean_home(self): rmtree(self.home) def createjob(self, name, configxml_fn): configxml = open(configxml_fn).read().encode('utf8') self.py.job_create(name, configxml) def getjobs(self): return {i.name: i for i in self.py.jobs} def enabled(self, name): return self.py.job(name).info['buildable'] def job_etree(self, job): res = self.py.job(job).config res = etree.fromstring(res) return res
""" Apache Ivy Base Job: Creates the base job for building Apache Ivy """ import os from jenkins import Jenkins, JenkinsError # get a handle for the jenkins server j = Jenkins(os.environ['ENDPOINT'], os.environ['USERNAME'], os.environ['PASSWORD']) # open the config.xml with open("./xml/jobs/apache-ivy-base-job/config.xml") as config_file: CONFIG = config_file.read() if j.job_exists("apache-ivy"): print("\tapache-ivy job exists. skipping...") else: try: print("\tCreating apache-ivy-base-job...") j.job_create("apache-ivy", CONFIG) except JenkinsError: print("\tCouldn't create the job")
import os import settings from jenkins import Jenkins, JenkinsError # get a handle for the jenkins server j = Jenkins(os.environ['ENDPOINT'], os.environ['USERNAME'], os.environ['PASSWORD']) # open the config.xml with open("./xml/jobs/hourly/config.xml") as config_file: config = config_file.read() for team in settings.teams: for job in settings.jobs: target = team + "-" + job if j.job_exists(target): print("\tJob exists; skipping: %s" % target) else: print("\tCreating job: %s" % target) try: j.job_create(team + "-" + job, config) except JenkinsError as e: print("\tERROR: %s", e)
import os import settings from jenkins import Jenkins, JenkinsError # get a handle for the jenkins server j = Jenkins(os.environ['ENDPOINT'], os.environ['USERNAME'], os.environ['PASSWORD']) # open the config.xml with open("./xml/folders/base/config.xml") as config_file: config = config_file.read() for team in settings.teams: if j.job_exists(team): print("\tFolder exists; skipping: %s" % team) else: try: print("\tCreating folder: %s" % team) j.job_create(team, config) except JenkinsError as e: print("\tERROR: %s" % e)