Compare commits
	
		
			2 Commits
		
	
	
		
			93f61e5523
			...
			e64fda687b
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								
								 | 
						e64fda687b | |
| 
							
							
								
								 | 
						d9d1ff8dfe | 
| 
						 | 
					@ -18,8 +18,7 @@ important credentials which allow the backend to work with Jenkins' API.
 | 
				
			||||||
The `jenkins_creds.py` file should look like the following:
 | 
					The `jenkins_creds.py` file should look like the following:
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
jenkins_host = 'https://sdk.dyne.org:4443'
 | 
					jenkins_host = 'https://sdk.dyne.org:4443'
 | 
				
			||||||
jenkins_user = 'toaster'
 | 
					jenkins_cred = 'toaster:thetoasterpassword'
 | 
				
			||||||
jenkins_pass = 'thetoasterpassword'
 | 
					 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
These files will be read and imported by `sync_jobs.py` when ran.
 | 
					These files will be read and imported by `sync_jobs.py` when ran.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,12 @@
 | 
				
			||||||
#!/usr/bin/env python3
 | 
					#!/usr/bin/env python3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from jenkins_creds import (jenkins_host, jenkins_cred)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Path to jenkins-cli.jar
 | 
					# Path to jenkins-cli.jar
 | 
				
			||||||
jarpath = '/var/cache/jenkins/war/WEB-INF/jenkins-cli.jar'
 | 
					jarpath = '/var/cache/jenkins/war/WEB-INF/jenkins-cli.jar'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# jar parameters
 | 
				
			||||||
 | 
					jarargs = ['java', '-jar', jarpath, '-s', jenkins_host, '-auth', jenkins_cred]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Physical path to where jobs are held
 | 
					# Physical path to where jobs are held
 | 
				
			||||||
jobpath = '/srv/toaster'
 | 
					jobpath = '/srv/toaster'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,8 +6,7 @@ Module for backend talk with Jenkins executed by the web/CGI
 | 
				
			||||||
from argparse import ArgumentParser
 | 
					from argparse import ArgumentParser
 | 
				
			||||||
from subprocess import run
 | 
					from subprocess import run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from config import jarpath, jobpath
 | 
					from config import (jarargs, jobpath)
 | 
				
			||||||
from jenkins_creds import (jenkins_host, jenkins_user, jenkins_pass)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def html_escape(string):
 | 
					def html_escape(string):
 | 
				
			||||||
| 
						 | 
					@ -53,23 +52,30 @@ def add_job(jobname):
 | 
				
			||||||
    for i in replacements:
 | 
					    for i in replacements:
 | 
				
			||||||
        sdk_job = sdk_job.replace('{{{%s}}}' % i[0], i[1])
 | 
					        sdk_job = sdk_job.replace('{{{%s}}}' % i[0], i[1])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    creds = '%s:%s' % (jenkins_user, jenkins_pass)
 | 
					    jarargs.append('create-job')
 | 
				
			||||||
    clijob = run(['java', '-jar', jarpath, '-s', jenkins_host, '-auth', creds,
 | 
					    jarargs.append(jobname.replace('@', 'AT'))
 | 
				
			||||||
                  'create-job', jobname.replace('@', 'AT')],
 | 
					 | 
				
			||||||
                 input=sdk_job.encode())
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return clijob
 | 
					    return run(jarargs, input=sdk_job.encode())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def del_job(jobname):
 | 
					def del_job(jobname):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Function for deleting a Jenkins job.
 | 
					    Function for deleting a Jenkins job.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    creds = '%s:%s' % (jenkins_user, jenkins_pass)
 | 
					    jarargs.append('delete-job')
 | 
				
			||||||
    clijob = run(['java', '-jar', jarpath, '-s', jenkins_host, '-auth', creds,
 | 
					    jarargs.append(jobname.replace('@', 'AT'))
 | 
				
			||||||
                  'delete-job', jobname.replace('@', 'AT')])
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return clijob
 | 
					    return run(jarargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def run_job(jobname):
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    Function for running a Jenkins job.
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
 | 
					    jarargs.append('build')
 | 
				
			||||||
 | 
					    jarargs.append(jobname.replace('@', 'AT'))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return run(jarargs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def main():
 | 
					def main():
 | 
				
			||||||
| 
						 | 
					@ -80,6 +86,7 @@ def main():
 | 
				
			||||||
    parser.add_argument('-a', '--add', action='store_true')
 | 
					    parser.add_argument('-a', '--add', action='store_true')
 | 
				
			||||||
    parser.add_argument('-d', '--delete', action='store_true')
 | 
					    parser.add_argument('-d', '--delete', action='store_true')
 | 
				
			||||||
    parser.add_argument('-n', '--dryrun', action='store_true')
 | 
					    parser.add_argument('-n', '--dryrun', action='store_true')
 | 
				
			||||||
 | 
					    parser.add_argument('-r', '--run', action='store_true')
 | 
				
			||||||
    parser.add_argument('jobname')
 | 
					    parser.add_argument('jobname')
 | 
				
			||||||
    # NOTE: jobname should be email-arch-date, and a predefined directory
 | 
					    # NOTE: jobname should be email-arch-date, and a predefined directory
 | 
				
			||||||
    # somewhere on the filesystem. e.g.:
 | 
					    # somewhere on the filesystem. e.g.:
 | 
				
			||||||
| 
						 | 
					@ -88,7 +95,6 @@ def main():
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    args = parser.parse_args()
 | 
					    args = parser.parse_args()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
    if args.add:
 | 
					    if args.add:
 | 
				
			||||||
        if args.dryrun:
 | 
					        if args.dryrun:
 | 
				
			||||||
            print('Would add:', args.jobname)
 | 
					            print('Would add:', args.jobname)
 | 
				
			||||||
| 
						 | 
					@ -101,6 +107,12 @@ def main():
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        print('Removing job:', args.jobname)
 | 
					        print('Removing job:', args.jobname)
 | 
				
			||||||
        del_job(args.jobname)
 | 
					        del_job(args.jobname)
 | 
				
			||||||
 | 
					    elif args.run:
 | 
				
			||||||
 | 
					        if args.dryrun:
 | 
				
			||||||
 | 
					            print('Would build:', args.jobname)
 | 
				
			||||||
 | 
					            return
 | 
				
			||||||
 | 
					        print('Building job:', args.jobname)
 | 
				
			||||||
 | 
					        run_job(args.jobname)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if __name__ == '__main__':
 | 
					if __name__ == '__main__':
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue