Skip to content

The Great PR

The Great PR #1086

Workflow file for this run

name: package-check
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
package-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # pin@v7.0.0
with:
persist-credentials: false
- name: setup node
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # pin@v6.4.0
with:
node-version-file: .node-version
cache: 'npm'
- name: install dependencies
run: npm ci --ignore-scripts --no-audit --no-fund
- name: rebuild the dist/ directory
run: npm run package
- name: compare the expected and actual dist/ directories
run: |
if [[ -n "$(git status --porcelain --untracked-files=all -- dist/)" ]]; then
echo "Detected changes in dist/ after build. See status below:"
git status --short --untracked-files=all -- dist/
git diff -- dist/
exit 1
fi
id: diff
- name: smoke test the ESM bundle
env:
BRANCH_DEPLOY_VITEST_TEST: 'true'
run: node --input-type=module --eval "const action = await import('./dist/index.js'); if (typeof action.run !== 'function') throw new Error('dist/index.js does not export run')"
# If index.js was different than expected, upload the expected version as an artifact
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # pin@v7.0.0
if: ${{ failure() && steps.diff.conclusion == 'failure' }}
with:
name: dist
path: dist/