--- name: "Setup Node.js Environment" description: "Sets up Node.js with caching and installs dependencies" inputs: node-version: description: "Node.js version to setup" required: false default: "24" registry-url: description: "NPM registry URL" required: false default: "" runs: using: "composite" steps: - name: Checkout Repository 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