mirror of
https://github.com/ivuorinen/actions.git
synced 2026-02-08 07:45:08 +00:00
refactor: inline node-setup across Node.js actions
Phase 6A: Remove node-setup abstraction layer and inline Node.js setup. Changes: - Replace node-setup calls with direct actions/setup-node@v6.0.0 - Inline package manager detection (lockfile-based) - Add Corepack enablement and package manager installation - Use Node.js 22 as default version Actions migrated (5): - prettier-lint: Inline Node.js setup + package manager detection - biome-lint: Inline Node.js setup + package manager detection - eslint-lint: Inline Node.js setup + package manager detection - pr-lint: Inline Node.js setup (conditional on package.json) - npm-publish: Inline Node.js setup + package manager detection Removed: - node-setup/action.yml (371 lines) - node-setup/README.md, rules.yml, CustomValidator.py - _tests/unit/node-setup/validation.spec.sh - _tests/integration/workflows/node-setup-test.yml - validate-inputs/tests/test_node-setup_custom.py Documentation updates: - CLAUDE.md: Remove node-setup from action list (26 actions) - generate_listing.cjs: Remove node-setup mappings - update-validators.py: Remove node-setup custom validator Result: 26 actions (down from 27), eliminated internal dependency layer.
This commit is contained in:
@@ -8,32 +8,32 @@ Run Prettier in check or fix mode with advanced configuration and reporting
|
||||
|
||||
### Inputs
|
||||
|
||||
| name | description | required | default |
|
||||
|---------------------|------------------------------------------------------------|----------|--------------------------------------------------|
|
||||
| `mode` | <p>Mode to run (check or fix)</p> | `false` | `check` |
|
||||
| `working-directory` | <p>Directory containing files to format</p> | `false` | `.` |
|
||||
| `prettier-version` | <p>Prettier version to use</p> | `false` | `latest` |
|
||||
| `config-file` | <p>Path to Prettier config file</p> | `false` | `.prettierrc` |
|
||||
| `ignore-file` | <p>Path to Prettier ignore file</p> | `false` | `.prettierignore` |
|
||||
| `file-pattern` | <p>Files to include (glob pattern)</p> | `false` | `**/*.{js,jsx,ts,tsx,css,scss,json,md,yaml,yml}` |
|
||||
| `cache` | <p>Enable Prettier caching</p> | `false` | `true` |
|
||||
| `fail-on-error` | <p>Fail workflow if issues are found (check mode only)</p> | `false` | `true` |
|
||||
| `report-format` | <p>Output format for check mode (json, sarif)</p> | `false` | `sarif` |
|
||||
| `max-retries` | <p>Maximum number of retry attempts</p> | `false` | `3` |
|
||||
| `plugins` | <p>Comma-separated list of Prettier plugins to install</p> | `false` | `""` |
|
||||
| `token` | <p>GitHub token for authentication</p> | `false` | `""` |
|
||||
| `username` | <p>GitHub username for commits (fix mode only)</p> | `false` | `github-actions` |
|
||||
| `email` | <p>GitHub email for commits (fix mode only)</p> | `false` | `github-actions@github.com` |
|
||||
| name | description | required | default |
|
||||
| --- | --- | --- | --- |
|
||||
| `mode` | <p>Mode to run (check or fix)</p> | `false` | `check` |
|
||||
| `working-directory` | <p>Directory containing files to format</p> | `false` | `.` |
|
||||
| `prettier-version` | <p>Prettier version to use</p> | `false` | `latest` |
|
||||
| `config-file` | <p>Path to Prettier config file</p> | `false` | `.prettierrc` |
|
||||
| `ignore-file` | <p>Path to Prettier ignore file</p> | `false` | `.prettierignore` |
|
||||
| `file-pattern` | <p>Files to include (glob pattern)</p> | `false` | `**/*.{js,jsx,ts,tsx,css,scss,json,md,yaml,yml}` |
|
||||
| `cache` | <p>Enable Prettier caching</p> | `false` | `true` |
|
||||
| `fail-on-error` | <p>Fail workflow if issues are found (check mode only)</p> | `false` | `true` |
|
||||
| `report-format` | <p>Output format for check mode (json, sarif)</p> | `false` | `sarif` |
|
||||
| `max-retries` | <p>Maximum number of retry attempts</p> | `false` | `3` |
|
||||
| `plugins` | <p>Comma-separated list of Prettier plugins to install</p> | `false` | `""` |
|
||||
| `token` | <p>GitHub token for authentication</p> | `false` | `""` |
|
||||
| `username` | <p>GitHub username for commits (fix mode only)</p> | `false` | `github-actions` |
|
||||
| `email` | <p>GitHub email for commits (fix mode only)</p> | `false` | `github-actions@github.com` |
|
||||
|
||||
### Outputs
|
||||
|
||||
| name | description |
|
||||
|---------------------|-----------------------------------------------------------------|
|
||||
| `status` | <p>Overall status (success/failure)</p> |
|
||||
| `files-checked` | <p>Number of files checked (check mode only)</p> |
|
||||
| name | description |
|
||||
| --- | --- |
|
||||
| `status` | <p>Overall status (success/failure)</p> |
|
||||
| `files-checked` | <p>Number of files checked (check mode only)</p> |
|
||||
| `unformatted-files` | <p>Number of files with formatting issues (check mode only)</p> |
|
||||
| `sarif-file` | <p>Path to SARIF report file (check mode only)</p> |
|
||||
| `files-changed` | <p>Number of files changed (fix mode only)</p> |
|
||||
| `sarif-file` | <p>Path to SARIF report file (check mode only)</p> |
|
||||
| `files-changed` | <p>Number of files changed (fix mode only)</p> |
|
||||
|
||||
### Runs
|
||||
|
||||
|
||||
@@ -223,25 +223,77 @@ runs:
|
||||
with:
|
||||
token: ${{ inputs.token || github.token }}
|
||||
|
||||
- name: Node Setup
|
||||
id: node-setup
|
||||
uses: ivuorinen/actions/node-setup@0fa9a68f07a1260b321f814202658a6089a43d42
|
||||
- name: Detect Package Manager
|
||||
id: detect-pm
|
||||
shell: sh
|
||||
run: |
|
||||
set -eu
|
||||
|
||||
# Detect package manager from lockfiles
|
||||
if [ -f bun.lockb ]; then
|
||||
package_manager="bun"
|
||||
elif [ -f pnpm-lock.yaml ]; then
|
||||
package_manager="pnpm"
|
||||
elif [ -f yarn.lock ]; then
|
||||
package_manager="yarn"
|
||||
else
|
||||
package_manager="npm"
|
||||
fi
|
||||
|
||||
printf 'package-manager=%s\n' "$package_manager" >> "$GITHUB_OUTPUT"
|
||||
echo "Detected package manager: $package_manager"
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: '22'
|
||||
|
||||
- name: Enable Corepack
|
||||
shell: sh
|
||||
run: |
|
||||
set -eu
|
||||
corepack enable
|
||||
|
||||
- name: Install Package Manager
|
||||
shell: sh
|
||||
env:
|
||||
PACKAGE_MANAGER: ${{ steps.detect-pm.outputs.package-manager }}
|
||||
run: |
|
||||
set -eu
|
||||
|
||||
case "$PACKAGE_MANAGER" in
|
||||
pnpm)
|
||||
corepack prepare pnpm@latest --activate
|
||||
;;
|
||||
yarn)
|
||||
corepack prepare yarn@stable --activate
|
||||
;;
|
||||
bun|npm)
|
||||
# Bun installed separately, npm built-in
|
||||
;;
|
||||
esac
|
||||
|
||||
- name: Setup Bun
|
||||
if: steps.detect-pm.outputs.package-manager == 'bun'
|
||||
uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76 # v2.0.2
|
||||
with:
|
||||
bun-version: latest
|
||||
|
||||
- name: Cache Node Dependencies
|
||||
id: cache
|
||||
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
|
||||
with:
|
||||
path: node_modules
|
||||
key: ${{ runner.os }}-prettier-lint-${{ inputs.mode }}-${{ steps.node-setup.outputs.package-manager }}-${{ hashFiles('package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'bun.lockb') }}
|
||||
key: ${{ runner.os }}-prettier-lint-${{ inputs.mode }}-${{ steps.detect-pm.outputs.package-manager }}-${{ hashFiles('package-lock.json', 'yarn.lock', 'pnpm-lock.yaml', 'bun.lockb') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-prettier-lint-${{ inputs.mode }}-${{ steps.node-setup.outputs.package-manager }}-
|
||||
${{ runner.os }}-prettier-lint-${{ inputs.mode }}-${{ steps.detect-pm.outputs.package-manager }}-
|
||||
${{ runner.os }}-prettier-lint-${{ inputs.mode }}-
|
||||
|
||||
- name: Install Dependencies
|
||||
if: steps.cache.outputs.cache-hit != 'true'
|
||||
shell: bash
|
||||
env:
|
||||
PACKAGE_MANAGER: ${{ steps.node-setup.outputs.package-manager }}
|
||||
PACKAGE_MANAGER: ${{ steps.detect-pm.outputs.package-manager }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
---
|
||||
# Validation rules for prettier-lint action
|
||||
# Generated by update-validators.py v1.0.0 - DO NOT EDIT MANUALLY
|
||||
# Schema version: 1.0
|
||||
@@ -8,7 +7,6 @@
|
||||
# Rules are automatically applied by validate-inputs action when this
|
||||
# action is used.
|
||||
#
|
||||
|
||||
schema_version: '1.0'
|
||||
action: prettier-lint
|
||||
description: Run Prettier in check or fix mode with advanced configuration and reporting
|
||||
|
||||
Reference in New Issue
Block a user