~matsubara/maas/run-from-checkout

« back to all changes in this revision

Viewing changes to bin/jenkinstrigger.py

  • Committer: diogo.matsubara at canonical
  • Date: 2014-05-27 14:47:47 UTC
  • mto: This revision was merged to the branch mainline in revision 38.
  • Revision ID: diogo.matsubara@canonical.com-20140527144747-pyywzsh1vyc5i7y7
review comments

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
plugin.load_plugins()
10
10
 
11
11
JENKINS_URL = 'http://d-jenkins.ubuntu-ci:8080'
12
 
JOB_TOKEN = '5b52a61'
13
12
 
14
13
 
15
14
def branch_url_to_filename(branch_url):
23
22
 
24
23
def get_last_revno(branch_url):
25
24
    try:
26
 
        last_revno = open(branch_url_to_filename(branch_url)).read()
27
 
    except IOError:
28
 
        # Can't find the file, assume it's the first run.
29
 
        last_revno = 0
 
25
        last_revno = open(branch_url_to_filename(branch_url), "rb").read()
 
26
    except IOError as e:
 
27
        if e.errno == errno.ENOENT:
 
28
            # Can't find the file, assume it's the first run.
 
29
            last_revno = 0
 
30
        else:
 
31
            raise
30
32
    return int(last_revno)
31
33
 
32
34
 
33
35
def save_revno(branch_url, revno):
34
 
    with open(branch_url_to_filename(branch_url), 'w') as f:
 
36
    with open(branch_url_to_filename(branch_url), 'wb') as f:
35
37
        f.write(str(revno))
36
38
 
37
39
 
38
 
def get_branch_urls(job):
 
40
def main(argv):
 
41
    # Usage:
 
42
    # jenkinstrigger.py <job-name> <job-token>
 
43
    job_name = argv[1]
 
44
    job_token = argv[2]
 
45
    jenkins = Jenkins(JENKINS_URL)
 
46
    job = jenkins.get_job(job_name)
39
47
    for param in job.get_params():
40
48
        if param.get('name') == 'MAAS_BRANCH':
41
49
            maas_branch_url = param.get('defaultParameterValue')['value']
42
50
        elif param.get('name') == 'PACKAGING_BRANCH':
43
51
            packaging_url = param.get('defaultParameterValue')['value']
44
 
    return maas_branch_url, packaging_url
45
 
 
46
 
 
47
 
def main(argv):
48
 
    # Usage:
49
 
    # jenkinstrigger.py <job-name>
50
 
    job_name = argv[1]
51
 
    jenkins = Jenkins(JENKINS_URL)
52
 
    job = jenkins.get_job(job_name)
53
 
    maas_branch_url, packaging_url = get_branch_urls(job)
54
52
 
55
53
    current_maas_revno = get_current_revno(maas_branch_url)
56
54
    current_packaging_revno = get_current_revno(packaging_url)
67
65
            'PACKAGING_BRANCH': packaging_url
68
66
        }
69
67
        print "Building %s with %s" % (job_name, params)
70
 
        job.invoke(securitytoken=JOB_TOKEN, build_params=params)
 
68
        job.invoke(securitytoken=job_token, build_params=params)
71
69
        save_revno(maas_branch_url, current_maas_revno)
72
70
        save_revno(packaging_url, current_packaging_revno)
73
71
    else:
74
 
        print "%s (revno: %s) <= %s" % (
75
 
            maas_branch_url, current_maas_revno, last_maas_revno)
76
 
        print "%s (revno: %s) <= %s" % (
77
 
            packaging_url, current_packaging_revno, last_packaging_revno)
 
72
        print ("Not running tests because:\n"
 
73
            "%s (revno: %s) <= %s\n"
 
74
            "%s (revno: %s) <= %s\n" % (
 
75
            maas_branch_url, current_maas_revno, last_maas_revno,
 
76
            packaging_url, current_packaging_revno, last_packaging_revno))
78
77
 
79
78
 
80
79
if __name__ == '__main__':