Plumb package_repository_name.
Support specifying package_repository_name in fuchsia_package_tasks.
Change-Id: I259869d20b4d06fc8da8fc571b9d8701a2fb015c
Reviewed-on: https://fuchsia-review.googlesource.com/c/sdk-integration/+/791185
Reviewed-by: Jiaming Li <lijiaming@google.com>
Fuchsia-Auto-Submit: Darren Chan <chandarren@google.com>
Commit-Queue: Darren Chan <chandarren@google.com>
diff --git a/bazel_rules_fuchsia/fuchsia/private/workflows/fuchsia_package_tasks.bzl b/bazel_rules_fuchsia/fuchsia/private/workflows/fuchsia_package_tasks.bzl
index 4d62f01..a4f3aae 100644
--- a/bazel_rules_fuchsia/fuchsia/private/workflows/fuchsia_package_tasks.bzl
+++ b/bazel_rules_fuchsia/fuchsia/private/workflows/fuchsia_package_tasks.bzl
@@ -11,7 +11,7 @@
load(":fuchsia_task_verbs.bzl", "make_help_executable", "verbs")
load(":fuchsia_workflow.bzl", "fuchsia_workflow", "fuchsia_workflow_rule")
load(":providers.bzl", "FuchsiaDebugSymbolInfo", "FuchsiaPackageInfo", "FuchsiaWorkflowInfo")
-load(":utils.bzl", "label_name", "normalized_target_name")
+load(":utils.bzl", "flatten", "label_name", "normalized_target_name")
def _to_verb(label):
return verbs.custom(label_name(label))
@@ -75,12 +75,12 @@
)
def _fuchsia_package_default_task_impl(ctx, make_workflow):
- default_workflow = make_workflow(sequence = [
+ default_workflow = make_workflow(sequence = flatten([
ctx.attr.debug_symbols_task,
ctx.attr.publish_task,
] + ctx.attr.component_run_tasks + [
- ctx.attr.publish_cleanup_task,
- ] if (
+ ctx.attr.publish_cleanup_task or [],
+ ]) if (
ctx.attr.is_test and ctx.attr.component_run_tasks
) else [ctx.attr.help_task])
return [
@@ -125,7 +125,6 @@
"publish_cleanup_task": attr.label(
doc = "The package publishing cleanup task associated with the package.",
providers = [FuchsiaWorkflowInfo],
- mandatory = True,
),
"component_run_tasks": attr.label_list(
doc = "The component run tasks.",
@@ -148,6 +147,7 @@
tools = {},
is_test = False,
tags = [],
+ package_repository_name = None,
**kwargs):
# TODO(fxbug.dev/98996): Use ffx isolation. ffx test run currently needs
# to access ~/.local/share/Fuchsia/ffx/ or else it crashes.
@@ -177,7 +177,7 @@
fuchsia_task_publish(
name = anonymous_publish_task,
packages = [package],
- package_repository_name = anonymous_repo_name,
+ package_repository_name = package_repository_name or anonymous_repo_name,
**kwargs
)
fuchsia_task_ffx(
@@ -193,6 +193,7 @@
fuchsia_task_publish(
name = publish_only_task,
packages = [package],
+ package_repository_name = package_repository_name,
**kwargs
)
fuchsia_workflow(
@@ -230,7 +231,7 @@
fuchsia_task_run_component(
name = component_run_tasks[-1],
default_argument_scope = "global",
- repository = anonymous_repo_name,
+ repository = package_repository_name or anonymous_repo_name,
package = package,
component = component,
tags = tags,
@@ -243,8 +244,9 @@
debug_symbols_task,
anonymous_publish_task,
component_run_tasks[-1],
+ ] + ([] if package_repository_name else [
verbs.delete_repo(anonymous_publish_task),
- ],
+ ]),
apply_fuchsia_transition = True,
tags = top_level_tags + manual_test,
**kwargs
@@ -256,7 +258,7 @@
fuchsia_task_run_driver_tool(
name = "%s.run_only" % tool_run_task,
default_argument_scope = "global",
- repository = anonymous_repo_name,
+ repository = package_repository_name or anonymous_repo_name,
package = package,
tool = tool,
tags = tags,
@@ -269,8 +271,9 @@
debug_symbols_task,
anonymous_publish_task,
"%s.run_only" % tool_run_task,
+ ] + ([] if package_repository_name else [
verbs.delete_repo(anonymous_publish_task),
- ],
+ ]),
apply_fuchsia_transition = True,
tags = top_level_tags,
**kwargs
@@ -282,7 +285,9 @@
help_task = help_task,
debug_symbols_task = debug_symbols_task,
publish_task = anonymous_publish_task,
- publish_cleanup_task = verbs.delete_repo(anonymous_publish_task),
+ publish_cleanup_task = None if (
+ package_repository_name
+ ) else verbs.delete_repo(anonymous_publish_task),
component_run_tasks = component_run_tasks,
is_test = is_test,
package = package,