summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ick2/actionenvs.py5
-rw-r--r--ick2/actions.py8
-rwxr-xr-xworker_manager2
3 files changed, 14 insertions, 1 deletions
diff --git a/ick2/actionenvs.py b/ick2/actionenvs.py
index 099b13f..e09366b 100644
--- a/ick2/actionenvs.py
+++ b/ick2/actionenvs.py
@@ -103,6 +103,10 @@ class ActionEnvironment: # pragma: no cover
self._systree = systree
self._workspace = workspace
self._reporter = reporter
+ self._extra_env = {}
+
+ def set_extra_env(self, extra_env):
+ self._extra_env = dict(extra_env)
def get_systree_directory(self):
return self._systree
@@ -132,6 +136,7 @@ class ActionEnvironment: # pragma: no cover
'LC_ALL': 'C',
'DEBIAN_FRONTEND': 'noninteractive',
})
+ env.update(self._extra_env)
return env
diff --git a/ick2/actions.py b/ick2/actions.py
index ab23edc..9f444e0 100644
--- a/ick2/actions.py
+++ b/ick2/actions.py
@@ -41,6 +41,10 @@ class ActionFactory:
self._reporter = reporter
self._token = None
self._blob_url = None
+ self._extra_env = {}
+
+ def add_env_var(self, name, value): # pragma: no cover
+ self._extra_env[name] = value
def set_token(self, token):
self._token = token
@@ -68,7 +72,9 @@ class ActionFactory:
env_class = self._classes[env]
area = self.get_workspace_area()
ws = area.create_workspace(project_name)
- return env_class(self._systree, ws.get_directory(), self._reporter)
+ env = env_class(self._systree, ws.get_directory(), self._reporter)
+ env.set_extra_env(self._extra_env)
+ return env
def create_action(self, spec, project_name):
env = self.create_environment(spec, project_name)
diff --git a/worker_manager b/worker_manager
index 1590109..cd2c884 100755
--- a/worker_manager
+++ b/worker_manager
@@ -198,12 +198,14 @@ class Worker:
def do_work(self, work):
project_name = work['project']
+ build_number = work['build_number']
step = work.get('step', {})
params = work.get('parameters', {})
reporter = ick2.Reporter(self._api, work)
af = ick2.ActionFactory(self._systree, self._workspace, reporter)
af.set_token(self._api.get_token())
af.set_blob_url_func(self._api.get_blob_upload_url)
+ af.add_env_var('BUILD_NUMBER', str(build_number))
action = af.create_action(step, project_name)
exit_code = action.execute(params, step)