From 78c58360cfef6613800f24590850fddea328f6a2 Mon Sep 17 00:00:00 2001 From: autoscatto <4utoscatto@gmail.com> Date: Wed, 2 Aug 2017 11:24:19 +0200 Subject: [PATCH 1/2] added argument passing for build --- jenkins_cli/cli.py | 2 +- jenkins_cli/cli_arguments.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/jenkins_cli/cli.py b/jenkins_cli/cli.py index 897e6eb..c089c50 100644 --- a/jenkins_cli/cli.py +++ b/jenkins_cli/cli.py @@ -238,7 +238,7 @@ def setbranch(self, args): def start(self, args): for job in args.job_name: job_name = self._check_job(job) - start_status = self.jenkins.build_job(job_name) + start_status = self.jenkins.build_job(job_name, parameters=args.bargs) print("%s: %s" % (job_name, 'started' if not start_status else start_status)) def _get_build_changesets(self, build): diff --git a/jenkins_cli/cli_arguments.py b/jenkins_cli/cli_arguments.py index b30fbed..b0c9d4b 100644 --- a/jenkins_cli/cli_arguments.py +++ b/jenkins_cli/cli_arguments.py @@ -3,6 +3,16 @@ from jenkins_cli.cli import get_jobs_legend from jenkins_cli.version import version +def string_to_dict(s): + try: + _d = {} + for x in s.split(): + k,v = x.split(':') + _d[k] = v + return _d + except: + return None + def load_parser(): """ @@ -23,6 +33,7 @@ def load_parser(): parser.add_argument('-e', '--environment', help='Which config section to use') + subparsers = parser.add_subparsers(title='Available commands', dest='jenkins_command') jobs_parser = subparsers.add_parser('jobs', @@ -41,6 +52,7 @@ def load_parser(): start_parser = subparsers.add_parser('start', help='Start job') start_parser.add_argument('job_name', help='Job to start', nargs='*') + start_parser.add_argument('--bargs', metavar='bargs', help='Build arguments. (in key1:value1 key2:value2 format)', default=None, type=string_to_dict) start_parser = subparsers.add_parser('info', help='Job info') start_parser.add_argument('job_name', help='Job to get info for') From 3a09b91f2fc625333e469cbd1c5214b1ae5ec88d Mon Sep 17 00:00:00 2001 From: autoscatto <4utoscatto@gmail.com> Date: Wed, 2 Aug 2017 14:40:14 +0200 Subject: [PATCH 2/2] https://www.youtube.com/watch?v=PlsW2hd06R0 --- jenkins_cli/cli.py | 2 ++ jenkins_cli/cli_arguments.py | 13 +------------ 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/jenkins_cli/cli.py b/jenkins_cli/cli.py index c089c50..6da29d0 100644 --- a/jenkins_cli/cli.py +++ b/jenkins_cli/cli.py @@ -236,6 +236,8 @@ def setbranch(self, args): print("Cannot set branch name") def start(self, args): + if args.bargs is not None: + args.bargs = dict([x.split(':') for x in args.bargs]) for job in args.job_name: job_name = self._check_job(job) start_status = self.jenkins.build_job(job_name, parameters=args.bargs) diff --git a/jenkins_cli/cli_arguments.py b/jenkins_cli/cli_arguments.py index b0c9d4b..3a2a90e 100644 --- a/jenkins_cli/cli_arguments.py +++ b/jenkins_cli/cli_arguments.py @@ -3,17 +3,6 @@ from jenkins_cli.cli import get_jobs_legend from jenkins_cli.version import version -def string_to_dict(s): - try: - _d = {} - for x in s.split(): - k,v = x.split(':') - _d[k] = v - return _d - except: - return None - - def load_parser(): """ Create a parser and load it with CLI arguments @@ -52,7 +41,7 @@ def load_parser(): start_parser = subparsers.add_parser('start', help='Start job') start_parser.add_argument('job_name', help='Job to start', nargs='*') - start_parser.add_argument('--bargs', metavar='bargs', help='Build arguments. (in key1:value1 key2:value2 format)', default=None, type=string_to_dict) + start_parser.add_argument('--bargs', metavar='bargs', help='Build arguments. (in key1:value1 key2:value2 format)', nargs='*', default=None) start_parser = subparsers.add_parser('info', help='Job info') start_parser.add_argument('job_name', help='Job to get info for')