damp-quill-59187
01/07/2020, 7:19 PMrun which operates on a python_library target. run is set up to require publish , publish does it's magic and produces an artifact, and within publish a string is produced that needs to be associated with that particular library target for run. Is there a standardized way to make that association, such that it can be accessed on the target when run is executed?aloof-angle-91616
01/07/2020, 8:35 PMaloof-angle-91616
01/07/2020, 8:36 PMprepare() and product_types() classmethodsaloof-angle-91616
01/07/2020, 8:36 PMaloof-angle-91616
01/07/2020, 8:37 PMaloof-angle-91616
01/07/2020, 8:37 PMdamp-quill-59187
01/07/2020, 8:37 PMaloof-angle-91616
01/07/2020, 8:38 PMtarget -> <variable>aloof-angle-91616
01/07/2020, 8:39 PMself.context.products.register_data('product-key', {})aloof-angle-91616
01/07/2020, 8:39 PMtarget -> data instead of {})aloof-angle-91616
01/07/2020, 8:39 PMmapping = self.context.products.get_data('product-key')damp-quill-59187
01/07/2020, 8:39 PMaloof-angle-91616
01/07/2020, 8:40 PM@classmethod
def product_types(cls):
return super().product_types() + ['my-product-key']aloof-angle-91616
01/07/2020, 8:40 PMaloof-angle-91616
01/07/2020, 8:41 PM@classmethod
def prepare(cls, options, round_manager):
super().prepare(options, round_manager)
round_manager.require_data('my-product-key')aloof-angle-91616
01/07/2020, 8:41 PMaloof-angle-91616
01/07/2020, 8:41 PMdamp-quill-59187
01/07/2020, 8:41 PMaloof-angle-91616
01/07/2020, 8:42 PMdamp-quill-59187
01/07/2020, 8:42 PMaloof-angle-91616
01/07/2020, 8:42 PMObjectFiles product in that taskaloof-angle-91616
01/07/2020, 8:43 PMObjectFiles product in this task (the link task)aloof-angle-91616
01/07/2020, 8:43 PMdamp-quill-59187
01/07/2020, 8:45 PMfor target in targets: result = do_publish(target);damp-quill-59187
01/07/2020, 8:46 PMaloof-angle-91616
01/07/2020, 8:46 PMaloof-angle-91616
01/07/2020, 8:47 PMaloof-angle-91616
01/07/2020, 8:47 PMdamp-quill-59187
01/07/2020, 8:49 PMaloof-angle-91616
01/07/2020, 8:50 PMclass PublishTask(Task):
@classmethod
def product_types(cls):
return ['publish-info']
def execute(self):
results = {}
for target in self.get_targets():
results[target] = do_publish(target)
self.context.products.register_data('publish-info', results)
`run_task.py`:
class RunTask(Task):
@classmethod
def prepare(cls, options, round_manager):
super().prepare(options, round_manager)
round_manager.require_data('publish-info')
def execute(self):
publish_info = self.context.products.get_data('publish-info')
for target in self.get_targets():
info = publish_info[target]aloof-angle-91616
01/07/2020, 8:50 PMdamp-quill-59187
01/07/2020, 9:07 PMrun task using the target as a key would work, but if it does then that gets me where I need to go, thanks for the help