--- name: "Setup Development Environment" description: "Complete setup for tree-sitter-shellspec development including Node.js and Tree-sitter" inputs: node-version: description: "Node.js version to setup" required: false default: "24" registry-url: description: "NPM registry URL" required: false default: "" skip-checkout: description: "Skip repository checkout (if already done)" required: false default: "false" runs: using: "composite" steps: - name: Checkout Repository if: inputs.skip-checkout != 'true' uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Setup Node.js ${{ inputs.node-version }} uses: actions/setup-node@7c12f8017d5436eb855f1ed4399f037a36fbd9e8 # v5.2.1 with: node-version: ${{ inputs.node-version }} cache: npm registry-url: ${{ inputs.registry-url }} - name: Install Dependencies run: npm ci || { echo "❌ npm install failed" && npm install } shell: bash - name: Setup Tree-sitter Environment uses: ./.github/actions/setup-treesitter