Skip to content

Commit bdff49c

Browse files
committed
CI: Fix workflow custom data storage and retrival
1 parent 386bc6a commit bdff49c

File tree

3 files changed

+20
-38
lines changed

3 files changed

+20
-38
lines changed

ci/praktika/info.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -160,23 +160,12 @@ def store_custom_data(self, key, value):
160160
assert (
161161
self.env.JOB_NAME == "Config Workflow"
162162
), "Custom data can be stored only in Config Workflow Job"
163-
custom_data = {key: value}
164-
if Path(Settings.CUSTOM_DATA_FILE).is_file():
165-
with open(Settings.CUSTOM_DATA_FILE, "r", encoding="utf8") as f:
166-
custom_data = json.load(f)
167-
custom_data[key] = value
168-
with open(Settings.CUSTOM_DATA_FILE, "w", encoding="utf8") as f:
169-
json.dump(custom_data, f, indent=4)
163+
workflow_config = RunConfig.from_fs(self.env.WORKFLOW_NAME)
164+
workflow_config.custom_data[key] = value
165+
workflow_config.dump()
170166

171167
def get_custom_data(self, key=None):
172-
# todo: remove intermediary file CUSTOM_DATA_FILE and store/get directly to/from RunConfig
173-
if Path(Settings.CUSTOM_DATA_FILE).is_file():
174-
# first check CUSTOM_DATA_FILE in case data is not yet in RunConfig
175-
# might happen if data stored in one pre-hook and fetched in another
176-
with open(Settings.CUSTOM_DATA_FILE, "r", encoding="utf8") as f:
177-
custom_data = json.load(f)
178-
else:
179-
custom_data = RunConfig.from_fs(self.env.WORKFLOW_NAME).custom_data
168+
custom_data = RunConfig.from_fs(self.env.WORKFLOW_NAME).custom_data
180169
if key:
181170
return custom_data.get(key, None)
182171
return custom_data

ci/praktika/native_jobs.py

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,19 @@ def _check_db(workflow):
233233
print(f"Start [{job_name}], workflow [{workflow.name}]")
234234
results = []
235235
files = []
236+
env = _Environment.get()
237+
_ = RunConfig(
238+
name=workflow.name,
239+
digest_jobs={},
240+
digest_dockers={},
241+
sha=env.SHA,
242+
cache_success=[],
243+
cache_success_base64=[],
244+
cache_artifacts={},
245+
cache_jobs={},
246+
filtered_jobs={},
247+
custom_data={},
248+
).dump()
236249

237250
if workflow.pre_hooks:
238251
sw_ = Utils.Stopwatch()
@@ -267,31 +280,12 @@ def _check_db(workflow):
267280
result_ = _check_db(workflow)
268281
results.append(result_)
269282

270-
if Path(Settings.CUSTOM_DATA_FILE).is_file():
271-
with open(Settings.CUSTOM_DATA_FILE, "r", encoding="utf8") as f:
272-
custom_data = json.load(f)
273-
print(f"Custom data: [{custom_data}]")
274-
else:
275-
custom_data = {}
276-
print(f"Custom data has not been provided")
277-
278-
env = _Environment.get()
279-
workflow_config = RunConfig(
280-
name=workflow.name,
281-
digest_jobs={},
282-
digest_dockers={},
283-
sha=env.SHA,
284-
cache_success=[],
285-
cache_success_base64=[],
286-
cache_artifacts={},
287-
cache_jobs={},
288-
filtered_jobs={},
289-
custom_data=custom_data,
290-
).dump()
291-
292283
if workflow.enable_merge_commit:
293284
assert False, "NOT implemented"
294285

286+
# read object from fs after .pre_hooks as some users's custom data may be added there
287+
workflow_config = RunConfig.from_fs(workflow.name)
288+
295289
if results[-1].is_ok() and workflow.dockers:
296290
sw_ = Utils.Stopwatch()
297291
print("Calculate docker's digests")

ci/praktika/settings.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ class _Settings:
6868
WORKFLOW_STATUS_FILE: str = f"{TEMP_DIR}/workflow_status.json"
6969
WORKFLOW_INPUTS_FILE: str = f"{TEMP_DIR}/workflow_inputs.json"
7070
ARTIFACT_URLS_FILE: str = f"{TEMP_DIR}/artifact_urls.json"
71-
CUSTOM_DATA_FILE: str = "/tmp/custom_data.json"
7271

7372
######################################
7473
# CI Cache settings #

0 commit comments

Comments
 (0)