From cfac1f3950eea9d905e6981218415c119f234588 Mon Sep 17 00:00:00 2001 From: Nathaniel Kerr Date: Mon, 9 Dec 2024 14:17:53 -0500 Subject: [PATCH 1/4] add test option to cli --- rcds/cli/__main__.py | 4 ++-- rcds/cli/deploy.py | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/rcds/cli/__main__.py b/rcds/cli/__main__.py index 24f1fbf..4849be4 100644 --- a/rcds/cli/__main__.py +++ b/rcds/cli/__main__.py @@ -1,6 +1,6 @@ import click -from .deploy import deploy +from .deploy import deploy, test @click.group() @@ -9,7 +9,7 @@ def cli(): cli.add_command(deploy) - +cli.add_command(test) if __name__ == "__main__": cli() diff --git a/rcds/cli/deploy.py b/rcds/cli/deploy.py index cea6d07..c456ce2 100644 --- a/rcds/cli/deploy.py +++ b/rcds/cli/deploy.py @@ -43,3 +43,29 @@ def deploy() -> None: project.scoreboard_backend.commit() else: click.echo("WARN: no scoreboard backend, skipping...") + +@click.command() +def test() -> None: + try: + project_config = find_files(["rcds"], SUPPORTED_EXTENSIONS, recurse=True)[ + "rcds" + ].parent + except KeyError: + click.echo("Could not find project root!") + exit(1) + click.echo(f"Loading project at {project_config}") + project = rcds.Project(project_config) + click.echo("Initializing backends") + project.load_backends() + click.echo("Loading challenges") + project.load_all_challenges() + for challenge in project.challenges.values(): + cm = rcds.challenge.docker.ContainerManager(challenge) + for container_name, container in cm.containers.items(): + click.echo(f"{challenge.config['id']}: checking container {container_name}") + if not container.is_built(): + click.echo( + f"{challenge.config['id']}: building container {container_name}" + f" ({container.get_full_tag()})" + ) + container.build() \ No newline at end of file From 57df499f3d86cfdbee14dc1b0e27b7fec0ec7f30 Mon Sep 17 00:00:00 2001 From: NathanKerr1225 <152437948+NathanKerr1225@users.noreply.github.com> Date: Sun, 15 Dec 2024 22:44:08 -0500 Subject: [PATCH 2/4] Update poetry.lock --- poetry.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/poetry.lock b/poetry.lock index eaee06f..669eccc 100644 --- a/poetry.lock +++ b/poetry.lock @@ -609,7 +609,7 @@ python-versions = "*" [[package]] name = "pyyaml" -version = "5.4.1" +version = "5.3.1" description = "YAML parser and emitter for Python" category = "main" optional = false From cc3df8818775dd504421be50fc7d8cc4cd6588a7 Mon Sep 17 00:00:00 2001 From: NathanKerr1225 <152437948+NathanKerr1225@users.noreply.github.com> Date: Sun, 15 Dec 2024 22:48:58 -0500 Subject: [PATCH 3/4] fix pyyaml < 5.3.1 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index b003c82..35253a0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ rcds = "rcds.cli:cli" [tool.poetry.dependencies] python = ">=3.7,<4.0" -pyyaml = "^5.3.1" +pyyaml = "<5.3.1" pathspec = "^0.9.0" docker = "^4.3.1" jsonschema = "^3.2.0" From 5aaca5a9b9f496010708ee0efa0f766a3377e6ef Mon Sep 17 00:00:00 2001 From: NathanKerr1225 <152437948+NathanKerr1225@users.noreply.github.com> Date: Sun, 15 Dec 2024 22:52:54 -0500 Subject: [PATCH 4/4] pyyaml > 5.4.1? --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 35253a0..504ac9e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ rcds = "rcds.cli:cli" [tool.poetry.dependencies] python = ">=3.7,<4.0" -pyyaml = "<5.3.1" +pyyaml = ">=5.4.1" pathspec = "^0.9.0" docker = "^4.3.1" jsonschema = "^3.2.0"