mirror of
https://github.com/ivuorinen/tree-sitter-shellspec.git
synced 2026-01-26 03:34:03 +00:00
- Add full ShellSpec grammar extending tree-sitter-bash - Support all ShellSpec constructs: Describe, Context, It, hooks, utilities - Include Data block parsing with statements and argument styles - Add 61 comprehensive test cases covering real-world patterns - Implement optimized GitHub workflows with CI/CD automation - Configure complete development tooling (linting, formatting, pre-commit) - Add comprehensive documentation and contribution guidelines - Optimize grammar conflicts to zero warnings - Support editor integration for Neovim, VS Code, Emacs Breaking Changes: - Initial release, no previous API to break BREAKING CHANGE: Initial implementation of tree-sitter-shellspec grammar # Conflicts: # .github/workflows/codeql.yml # .github/workflows/pr-lint.yml # .pre-commit-config.yaml # Conflicts: # .github/workflows/pr-lint.yml # Conflicts: # .github/workflows/pr-lint.yml
2.2 KiB
2.2 KiB
Composite Actions
This directory contains reusable composite actions to reduce duplication across workflows.
Available Actions
setup-node
Sets up Node.js with caching and installs dependencies.
Inputs:
node-version(optional): Node.js version, defaults to '24'registry-url(optional): NPM registry URL
Usage:
- uses: ./.github/actions/setup-node
with:
node-version: 22
setup-treesitter
Installs Tree-sitter CLI and generates the grammar.
Usage:
- uses: ./.github/actions/setup-treesitter
setup-dev
Complete development environment setup (combines setup-node + setup-treesitter).
Inputs:
node-version(optional): Node.js version, defaults to '24'registry-url(optional): NPM registry URLskip-checkout(optional): Skip repository checkout, defaults to 'false'
Usage:
- uses: ./.github/actions/setup-dev
with:
node-version: 24
skip-checkout: 'true'
test-grammar
Runs comprehensive grammar tests including parser validation.
Inputs:
skip-sample-test(optional): Skip complex sample test, defaults to 'false'
Usage:
- uses: ./.github/actions/test-grammar
with:
skip-sample-test: 'true'
test-coverage
Analyzes test coverage and validates minimum requirements.
Inputs:
minimum-tests(optional): Minimum tests required, defaults to '55'
Outputs:
total-tests: Total number of tests foundpassing-tests: Number of passing testscoverage-percent: Test coverage percentage
Usage:
- uses: ./.github/actions/test-coverage
with:
minimum-tests: 60
Workflow Usage Examples
Test Workflow (Simplified)
jobs:
test:
steps:
- uses: ./.github/actions/setup-dev
with:
node-version: ${{ matrix.node-version }}
- uses: ./.github/actions/test-grammar
Release Workflow (Simplified)
jobs:
test:
steps:
- uses: ./.github/actions/setup-dev
- uses: ./.github/actions/test-grammar
with:
skip-sample-test: 'true'
lint:
steps:
- uses: ./.github/actions/setup-node
- uses: ivuorinen/actions/pr-lint@latest