Skip to content

Add install-nixie shared action - #360

Merged
leynos merged 15 commits into
mainfrom
install-nixie-action
Aug 21, 2026
Merged

Add install-nixie shared action#360
leynos merged 15 commits into
mainfrom
install-nixie-action

Conversation

@lodyai

@lodyai lodyai Bot commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a reusable install-nixie composite action with configurable pins for Nixie CLI, Merman CLI, and Python
  • prefer locked cargo binstall packages for Merman and fall back to an exact locked cargo install source build when cargo-binstall is unavailable
  • export the uv tool binary directory through GITHUB_PATH so later workflow steps can invoke Nixie
  • document published and repository-local usage, failure behaviour, version overrides, and the maintainer test contract
  • cover both successful Merman paths, missing prerequisites, all installer failures, PATH-export ordering, concrete overrides, and bounded shell-safe version properties
  • ignore the pytest-cov .coverage database so validation and stop hooks do not dirty the working tree

Review walkthrough

  • Start with .github/actions/install-nixie/action.yml for the unchanged public inputs, installer fallback, and PATH hand-off.
  • Review .github/actions/install-nixie/tests/test_action.py for success, prerequisite failures, installer failures, PATH-export ordering, and property-based version coverage.
  • Finish with the action README and changelog, the Install Nixie sections in docs/users-guide.md and docs/developers-guide.md, and the root catalogue link.

Validation

  • pytest .github/actions/install-nixie/tests/test_action.py: unavailable because pytest is not on the shell PATH.
  • uv run pytest .github/actions/install-nixie/tests/test_action.py: passed, 11 tests.
  • make check-fmt: passed, 218 files checked.
  • make typecheck: passed.
  • make lint: passed, including Ruff, action-validator, Whitaker, and spelling checks.
  • make test: passed, 1,068 tests passed and 14 skipped; auxiliary typos tests passed 3 tests with 95.45% coverage.
  • make markdownlint: passed, 73 Markdown files with zero errors.
  • make nixie: passed, all Mermaid diagrams valid.
  • git diff --check: passed.

References

Summary by Sourcery

Introduce a reusable Install Nixie action for reliably provisioning the Mermaid validation toolchain in GitHub Actions.

New Features:

  • Add a reusable composite action for installing pinned Nixie and Merman CLI toolchain releases with configurable Nixie, Merman, and Python versions.

Enhancements:

  • Install Merman through locked binary packages when available and fall back to a locked source build otherwise.
  • Make the installed Nixie executable available to subsequent workflow steps through GITHUB_PATH.

Documentation:

  • Document published and repository-local usage, version overrides, prerequisites, failure behavior, and maintenance expectations.
  • Add the action to the repository's GitHub Actions catalogue.

Tests:

  • Add behavioral and property-based coverage for installation paths, overrides, prerequisites, failures, and PATH export ordering.

Chores:

  • Ignore the pytest-cov coverage database to keep validation hooks from dirtying the working tree.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants