diff --git a/spcd/__init__.py b/spcd/__init__.py index 2064a3d..c67180d 100644 --- a/spcd/__init__.py +++ b/spcd/__init__.py @@ -44,7 +44,7 @@ def clone_project_branch() -> None: ) -def install_actions(path: Path) -> None: +def install_actions() -> None: """Make actions usable in workflows. :param path: entry point file @@ -54,21 +54,33 @@ def install_actions(path: Path) -> None: name = "action.yaml" root = project.root / "act" vpy = Path(env.SPCD_PYTHON_VENV_BINARIES) / "python" - action = "synchronize" - log.info(action) - directory = root / action - fs.make_directory(directory) - fs.write(directory / name, f"""\ -inputs: + for action in ["action", "synchronize"]: + log.info(action) + directory = root / action + fs.make_directory(directory) + match action: + case "action": + inputs = """\ + arg-1: + required: true + arg_2: + required: true +""" + case "synchronize": + inputs = """\ source: default: out required: false +""" + yaml = f"""\ runs: using: composite steps: - - run: {vpy} -m spcd synchronize -""") - cat(directory / name) + - run: {vpy} -m spcd {action} +inputs: +{inputs}""" + fs.write(directory / name, yaml) + cat(directory / name) def install_commands(path: Path) -> None: diff --git a/spcd/act.py b/spcd/act.py index 87e9fe1..68ea759 100644 --- a/spcd/act.py +++ b/spcd/act.py @@ -4,14 +4,21 @@ import os from pathlib import Path from rwx import ps +from rwx.log import stream as log from spcd.ci import project, projects from spcd.shell import env -def synchronize( - source: str | None = None, target: str | None = None -) -> None: +def action() -> None: + """Display action inputs.""" + prefix = "" + for variable, value in sorted(projects.environment.items()): + if variable.startswith(prefix): + log.info("%s = %s", variable, value) + + +def synchronize(source: str | None = None, target: str | None = None) -> None: """Synchronize output towards a target. :param source: where to deploy from