Setup runner cli
Version updated for https://github.com/kjanat/runner to version v0.12.1.
- This action is used across all versions by 3 repositories.
Action Type
This is a Node action using Node version 24.
Go to the GitHub Marketplace to find the latest changes.
What’s Changed
Added
pyproject.toml[project.scripts]entry points (PEP 621 console scripts) are now extracted as runnable tasks for Python projects. They surface under thepyproject.tomlsource inrunner list(with the entry-point target shown as the description) and dispatch via the detected Python package manager’srunsubcommand —uv run <name>,poetry run <name>, orpipenv run <name>. Previously a uv/poetry project’s declared scripts were invisible torunner, which detected the package manager but listed no tasks.- AUR distribution channel. Two packages on the Arch User Repository:
runner-run-bin(prebuilt binaries forx86_64,aarch64,armv7h) andrunner-run(source build forx86_64,aarch64).-binprovides/conflictsrunner-run, so install whichever you prefer — https://aur.archlinux.org/packages/runner-run-bin and https://aur.archlinux.org/packages/runner-run. - Shell completions shipped by both AUR packages and auto-loaded from
the canonical system dirs: bash at
/usr/share/bash-completion/completions/{runner,run}, zsh at/usr/share/zsh/site-functions/{_runner,_run}, fish at/usr/share/fish/vendor_completions.d/{runner,run}.fish. PowerShell on Linux has no autoload convention, so the pwsh script is installed at/usr/share/runner/runner.ps1for users to dot-source from their$PROFILE. Completions are clap-dynamic — the shell shells out to the binary for candidates, so tab-completing in a project picks up the current task list frompackage.json/turbo.json/Justfile/ etc., not a static snapshot. .github/workflows/aur-release.ymlpublishes both packages on everyrelease: publishedevent (with manualworkflow_dispatch+dry-runfor validation). Gated behind a dedicatedaurGitHub Environment so theAUR_SSH_PRIVATE_KEYsecret is only readable from that job. Per-pkgconcurrency:group serializes manual + automatic triggers for the same package without blocking the other matrix leg..github/scripts/publish/aur-prepare.shrewritespkgver/pkgrelin the checked-in PKGBUILDs and, for the-binpackage, injects per-archsha256sums_*read directly from the release’s published.sha256companion assets (avoids theupdpkgsumshost-arch-only limitation). Strict semver regex on the version input refuses anything containing&,/,\, or newlines before anysedruns.- Man pages for
runner,run, and each subcommand. Rendered from the clap command tree by amansubcommand gated behind themanfeature (off by default — never in the shipped binary, never committed) and shipped by every channel: crates.io (in the published crate), npm (facademanfield), both AUR packages (/usr/share/man/man1/), and arunner-<tag>-man.tar.gzGitHub release asset thatinstall.shandrunner-run-binpull from.man runner/man runwork everywhere.
Security
- All third-party
uses:incrates-release.yml,npm-release.yml, andrelease.ymlpinned to commit SHAs (with a# vNtrailing comment for readability), so an upstream tag rewrite or account-takeover cannot silently swap in a different action build. persist-credentials: falseadded to everyactions/checkoutstep inrelease.yml, soGITHUB_TOKENis not persisted into git config.- Release verification no longer saves Rust caches from pull request runs, preventing untrusted PRs from persisting cache contents.
Fixed
runner list,runner run, andrunner whynow findpyproject.tomlscripts and Python package-manager signals from nested directories (bounded by the containing VCS root), so running fromsrc/inside a uv/poetry/pipenv project still surfaces and dispatches[project.scripts]tasks.runner whynow reports Python package-manager resolution forpyproject.tomltasks, including--pmand[pm].pythonoverrides, matching the actualrunner rundispatch path.runner list --sourceinvalid-label help now includespyproject.tomlin the accepted source list.- Restore the
multiple_crate_versionsClippy allow so CI accepts the current unavoidable duplicate transitive crate versions while keeping the broaderclippy::cargodeny group enabled. - Hide the feature-only
runner mangenerator from shippedrunner.1output, so installed man pages no longer document an unavailable subcommand.
What’s Changed
- feat(aur): publish runner-run + runner-run-bin with shell completions by @kjanat in https://github.com/kjanat/runner/pull/35
- docs: document AUR install channel in README, site, and changelog by @kjanat in https://github.com/kjanat/runner/pull/36
- Man pages: render from the CLI, ship on every channel by @kjanat in https://github.com/kjanat/runner/pull/37
- Surface pyproject.toml [project.scripts] as runnable tasks by @kjanat in https://github.com/kjanat/runner/pull/39
Full Changelog: https://github.com/kjanat/runner/compare/v0.12.0...v0.12.1