Skip to content

Instantly share code, notes, and snippets.

@nicokruger
Created February 23, 2012 13:53
Show Gist options
  • Save nicokruger/1892967 to your computer and use it in GitHub Desktop.
Save nicokruger/1892967 to your computer and use it in GitHub Desktop.
jenkins-jobcreate
import tempfile
import os
import libxml2
RECIPIENTS="[email protected]"
for line in [x.strip() for x in open("projects.list").readlines()]:
GIT_URL = "git://git.rorotika/" + line
GROUP_ID = "A"
ARTIFACT_ID = "A"
RECIPIENTS = "A"
JOB_NAME = line.split("/")[-1].replace(".git", "")
print(" Cloning %s" % GIT_URL)
tmpdir = tempfile.mkdtemp()
os.system("cd %s; git clone %s > /dev/null 2>&1" % (tmpdir, GIT_URL))
# check for a pom.xml
project_dir = os.path.join(tmpdir, JOB_NAME)
pom = os.path.join(project_dir, "pom.xml")
if os.path.exists(pom):
doc = libxml2.parseDoc(open(pom).read())
GROUP_ID = [x for x in doc.getRootElement().children if x.name == "groupId" and x.parent == doc.getRootElement()][0].content
ARTIFACT_ID = [x for x in doc.getRootElement().children if x.name == "artifactId" and x.parent == doc.getRootElement()][0].content
tmpname = tempfile.mktemp()
new_xml = open(tmpname, "w")
new_xml.write(open("job.xml").read().replace("GIT_URL", GIT_URL).replace("GROUP_ID", GROUP_ID).replace("ARTIFACT_ID", ARTIFACT_ID).replace("RECIPIENTS", RECIPIENTS))
new_xml.close()
print "- Creating job %s,%s,%s" % (GIT_URL, GROUP_ID, ARTIFACT_ID)
#http://build.rorotika/createItem
#curl -H "Content-type: text/xml" --data "@job.xml" http://build.rorotika/createItem?name=test
CMD = "curl -H \"Content-type: text/xml\" --data \"@%s\" http://build.rorotika/createItem?name=%s" % (tmpname, JOB_NAME)
print CMD
os.system(CMD)
else:
print("x Repository does not have a pom - skipping")
os.system("rm -rf %s" % tmpdir)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment