mirror of
https://github.com/imjasonh/apidiff-action
synced 2026-07-06 22:52:43 +00:00
refactor: simplify dist management to match GitHub Actions template
- Remove pre-commit hooks for building/checking dist - Add check-dist.yml workflow that validates dist in CI - This matches the approach used by actions/javascript-action - Eliminates OS-specific build differences affecting commits
This commit is contained in:
parent
c8230cc936
commit
b91371174f
4 changed files with 39 additions and 60 deletions
39
.github/workflows/check-dist.yml
vendored
Normal file
39
.github/workflows/check-dist.yml
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
name: Check dist
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-dist:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: '20'
|
||||||
|
cache: 'npm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Build dist
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
|
- name: Compare dist
|
||||||
|
run: |
|
||||||
|
if [ ! -d dist/ ]; then
|
||||||
|
echo "Expected dist/ directory does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "$(git diff --ignore-space-at-eol --text dist/ | wc -l)" -gt "0" ]; then
|
||||||
|
echo "Detected uncommitted changes after build. See diff below:"
|
||||||
|
git diff --ignore-space-at-eol --text dist/
|
||||||
|
echo ""
|
||||||
|
echo "Please run 'npm run build' locally and commit the changes"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
@ -27,18 +27,3 @@ repos:
|
||||||
files: \.js$
|
files: \.js$
|
||||||
args: ['--fix']
|
args: ['--fix']
|
||||||
exclude: ^dist/
|
exclude: ^dist/
|
||||||
|
|
||||||
- repo: local
|
|
||||||
hooks:
|
|
||||||
- id: build-dist
|
|
||||||
name: Build dist
|
|
||||||
entry: ./scripts/pre-commit-build.sh
|
|
||||||
language: system
|
|
||||||
pass_filenames: false
|
|
||||||
files: ^(index\.js|lib/.*\.js)$
|
|
||||||
- id: check-dist
|
|
||||||
name: Check dist is up to date
|
|
||||||
entry: ./scripts/pre-commit-check-dist.sh
|
|
||||||
language: system
|
|
||||||
pass_filenames: false
|
|
||||||
always_run: true
|
|
||||||
|
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Pre-commit script to build dist with Node 20
|
|
||||||
|
|
||||||
# Check if we're already on Node 20
|
|
||||||
node_version=$(node --version)
|
|
||||||
if [[ "$node_version" =~ ^v20\. ]]; then
|
|
||||||
# Already on Node 20, just build
|
|
||||||
npm run build
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Try to use nvm if available
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
|
||||||
if [ -s "$NVM_DIR/nvm.sh" ]; then
|
|
||||||
. "$NVM_DIR/nvm.sh"
|
|
||||||
nvm install 20.9.0 >/dev/null 2>&1
|
|
||||||
nvm use 20.9.0 >/dev/null 2>&1
|
|
||||||
|
|
||||||
# Verify we switched to Node 20
|
|
||||||
node_version=$(node --version)
|
|
||||||
if [[ "$node_version" =~ ^v20\. ]]; then
|
|
||||||
npm run build
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If we're not on Node 20 and can't switch, error out
|
|
||||||
echo "Error: Node.js v20 is required (found $node_version)"
|
|
||||||
echo "Please install Node 20 or use nvm to switch versions"
|
|
||||||
exit 1
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# Pre-commit script to check if dist is up to date
|
|
||||||
|
|
||||||
# Try to use Node 20 via nvm if available
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
|
||||||
if [ -s "$NVM_DIR/nvm.sh" ]; then
|
|
||||||
. "$NVM_DIR/nvm.sh"
|
|
||||||
nvm use 20.9.0 >/dev/null 2>&1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if dist has uncommitted changes
|
|
||||||
if [ -n "$(git status --porcelain dist)" ]; then
|
|
||||||
echo "dist is out of date. Run npm run build and commit the changes."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue