Skip to content

Commit 0375acd

Browse files
committed
Port taskgraph action from gecko_taskgraph
The documentation already says `You can generate actions.json locally by running taskgraph actions.` however that command was never ported over from gecko's `./mach taskgraph actions`
1 parent d9c772f commit 0375acd

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/taskgraph/main.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,44 @@ def decision(options):
710710
taskgraph_decision(options)
711711

712712

713+
@command("actions", help="Print the rendered actions.json")
714+
@argument(
715+
"--root",
716+
"-r",
717+
help="root of the taskgraph definition relative to topsrcdir",
718+
default="taskcluster",
719+
)
720+
@argument(
721+
"--verbose",
722+
"-v",
723+
action="store_true",
724+
help="include debug-level logging output",
725+
)
726+
@argument(
727+
"--parameters",
728+
"-p",
729+
default="",
730+
help="parameters file (.yml or .json; see `taskcluster/docs/parameters.rst`)`",
731+
)
732+
def actions(args):
733+
from taskgraph.actions import render_actions_json
734+
from taskgraph.generator import TaskGraphGenerator
735+
from taskgraph.parameters import parameters_loader
736+
737+
if args.pop("verbose", False):
738+
logging.root.setLevel(logging.DEBUG)
739+
740+
try:
741+
parameters = parameters_loader(args["parameters"])
742+
tgg = TaskGraphGenerator(root_dir=args.get("root"), parameters=parameters)
743+
744+
actions = render_actions_json(tgg.parameters, tgg.graph_config, "DECISION-TASK")
745+
print(json.dumps(actions, sort_keys=True, indent=2, separators=(",", ": ")))
746+
except Exception:
747+
traceback.print_exc()
748+
sys.exit(1)
749+
750+
713751
@command("action-callback", description="Run action callback used by action tasks")
714752
@argument(
715753
"--root",

0 commit comments

Comments
 (0)