Skip to content

Instantly share code, notes, and snippets.

@mpkocher
Last active October 2, 2019 15:18
Show Gist options
  • Save mpkocher/c5aaa96ae85b42c1b72f to your computer and use it in GitHub Desktop.
Save mpkocher/c5aaa96ae85b42c1b72f to your computer and use it in GitHub Desktop.
Jenkins PA rpms
import jenkins
from collections import namedtuple
# pip install python-jenkins
Resource = namedtuple("Resource", "jenkins rpm transformer")
RELEASE_NAME = "-dromedary-"
def split_name(n):
return n.split(RELEASE_NAME)[-1]
def default_transfer_display_name(build_display_name, rpm_name):
return "-".join([rpm_name, split_name(build_display_name)])
def rxx_transformer(build_display_name, rpm_name):
# stupid "-1" suffix
return default_transfer_display_name(build_display_name, rpm_name) + "-1"
def R(rpm, name):
return Resource(rpm, name, default_transfer_display_name)
def Rx(rpm, name):
return Resource(rpm, name, rxx_transformer)
class C(object):
PA = R("pa-RPM", "pacbio-pa")
PAWS = Rx("paws-deployment-package", "pacbio-pa-paws")
XFER = Rx("pa-xfer-deployment-package", "pacbio-pa-xfer")
PPA = R("ppa-deployment-package", "pacbio-pa-ppa")
ACQ = R("pa-acq-RPM", "pacbio-pa-acq")
BW = R("pa-bw-RPM", "pacbio-pa-bw")
REALTIME = R("pa-t2b-RPM", "pacbio-pa-realtime")
T2B = R("pa-t2b-RPM", "pacbio-pa-t2b")
PPPROXY = Rx("ppproxy-deployment-package", "pacbio-pa-pproxy")
ALL = (PAWS, XFER, PPA, ACQ, REALTIME, T2B, PPPROXY, PA, BW)
def get_server():
s = jenkins.Jenkins('http://jenkins:8080', username='secondarytest', password='Password123!')
version = s.get_version()
#print version
return s
def get_project_details(s, project_id):
last_build_number = s.get_job_info(project_id)['lastCompletedBuild']['number']
info = s.get_build_info(project_id, last_build_number)
display_name = info['displayName']
return display_name
def get_all_project_details(s, all_project_ids):
return {i: get_project_details(s, i.jenkins) for i in all_project_ids}
def create_manifest(release_version_str, release_tag, d):
results = {}
for resource, display_name in d.iteritems():
# 3.0.17-173393
release_name = resource.transformer(display_name, release_version_str)
# pacbio-pa-3.0.17
release_rpm_name = "-".join([resource.rpm, release_version_str])
results[release_rpm_name] = release_name
full_version = "-".join([release_version_str, release_tag])
return dict(version=full_version, rpms=results)
def run_example():
s = get_server()
rx = get_all_project_details(s, C.ALL)
release_version_str = "3.0.17"
release_tag = "rc1"
return create_manifest(release_version_str, release_tag, rx)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment