Skip to content

CI: smoke test for kenney-assets install CLI #70

Description

@dannystaple

Context

Part of #69 (CI validating real activity code). Unlike most of coder_dojo_common, the Kenney asset installer is a self-contained utility that doesn't need an external activity sheet to test meaningfully — it can be smoke-tested on its own.

The CLI entry point is kenney-assets (coder_dojo_common.cli:kenney), with two subcommands:

  • kenney-assets query — lists assets and download/install state (coder_dojo_common/cli.py)
  • kenney-assets install <ASSET_NAME> — downloads (if not cached) and extracts the asset zip into ./assets/<ASSET_NAME>/ (coder_dojo_common/cli.py, backed by KenneyAssets/get_assets/get_download_link in coder_dojo_common/kenney_assets.py)

Task

Add a CI job (GitHub Actions) that:

  • Installs the package (poetry install, as the other workflows already do)
  • Picks one small, stable Kenney asset (small file size, unlikely to be renamed/removed from kenney.nl) and runs kenney-assets install <ASSET_NAME> against it
  • Asserts the install succeeded: assets/<ASSET_NAME>/ exists and is non-empty (e.g. contains at least one extracted file)
  • Optionally also runs kenney-assets query and checks it exits cleanly and lists the asset

Notes / open questions

  • This hits the live kenney.nl site, so the job will be a bit network-flaky by nature — decide whether to continue-on-error or just accept occasional retries, and pick the smallest/most stable asset available to minimise both download time and risk of it disappearing
  • Could run this as its own workflow or as an extra job in on-pr-lint.yml — probably worth keeping separate so a flaky network hit doesn't block unrelated lint failures
  • If this works well it's a good template for the other Add CI that validates against real activity code #69 sub-areas (games/stats/maths viz), even though those need real activity code from Identify and reference the source activity sheets/repos #68 first

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions