diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-01-21 13:39:27 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-01-21 20:27:33 +0200 |
commit | d95d787339fbb0e02f9e25ce27e43ddd1b1698fa (patch) | |
tree | 573347896f9448352b04a58a51d0b4c5b2532c1a /ick2/workapi.py | |
parent | 360e840169f38e5cb7a5afa8a4e6ddc272203eee (diff) | |
download | ick2-d95d787339fbb0e02f9e25ce27e43ddd1b1698fa.tar.gz |
Add: builds to have a build_number field
For easy sorting.
Diffstat (limited to 'ick2/workapi.py')
-rw-r--r-- | ick2/workapi.py | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/ick2/workapi.py b/ick2/workapi.py index 67fad81..62581c7 100644 --- a/ick2/workapi.py +++ b/ick2/workapi.py @@ -50,17 +50,7 @@ class WorkAPI(ick2.APIbase): pipeline['status'] = 'building' self._update_pipeline(project, pipeline) - next_build_id = project.get('next_build_id') - if next_build_id is None: - next_build_id = 1 - build_id = '{}/{}'.format(project['project'], next_build_id) - ick2.log.log( - 'info', msg_text='build id chosen', - old_next_build_id=next_build_id, chosen_build_id=build_id) - project['next_build_id'] = next_build_id + 1 - self._projects.update_project(project) - - self._start_build(project, pipeline, worker, build_id) + build_id = self._start_build(project, pipeline, worker) self._start_log(build_id) build = self._get_build(build_id) actions = build['actions'] @@ -84,6 +74,16 @@ class WorkAPI(ick2.APIbase): return worker_state['doing'] + def _pick_build_number(self, project): + old_build_no = project.get('next_build_id') + build_no = (old_build_no or 0) + 1 + project['next_build_id'] = build_no + self._projects.update_project(project) + ick2.log.log( + 'info', msg_text='chose build number', + old_build_no=old_build_no, build_no=build_no) + return build_no + def _pick_triggered_pipeline(self): projects = self._projects.get_projects() for project in projects: @@ -104,8 +104,13 @@ class WorkAPI(ick2.APIbase): self._pinstances.add_instance( project_name, pipeline_name, pipeline_instance) - def _start_build(self, project, pipeline, worker, build_id): - ick2.log.log('info', msg_text='Starting new build', build_id=build_id) + def _start_build(self, project, pipeline, worker): + build_no = self._pick_build_number(project) + build_id = '{}/{}'.format(project['project'], build_no) + + ick2.log.log( + 'info', msg_text='Starting new build', build_id=build_id, + build_no=build_no) parameters = project.get('parameters', {}) create_workspace = { 'action': 'create_workspace', @@ -113,6 +118,7 @@ class WorkAPI(ick2.APIbase): actions = [create_workspace] + list(pipeline['actions']) build = { 'build_id': build_id, + 'build_number': build_no, 'log': '/logs/{}'.format(build_id), 'worker': worker, 'project': project['project'], |