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