Skip to content

Commit

Permalink
Add an NPM build verification workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremyfelt committed Jun 21, 2024
1 parent 0c7017c commit fa45dc0
Showing 1 changed file with 89 additions and 0 deletions.
89 changes: 89 additions & 0 deletions .github/workflows/verify-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Verify build (Node 20)

on:
workflow_call:
inputs:
node-version:
type: number
description: 'Node version to use'
required: true
default: 20

# The GITHUB_TOKEN used by Dependabot has read-only permissions by default. We
# provide write permissions to this workflow so that comments can be left on
# the pull request.
#
# @see https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions#changing-github_token-permissions
permissions:
contents: read
pull-requests: write

jobs:
build:
name: Check built files

runs-on: ubuntu-latest

steps:
- name: Checkout project
uses: actions/checkout@v4
with:
fetch-depth: 2

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: 'npm'

- name: Verify Node dependency cache
uses: actions/cache@v4
with:
path: ./node_modules
key: node-dependencies-${{ hashFiles('package-lock.json') }}
restore-keys: node-dependencies-

- name: Install Node dependencies
run: npm install

- name: Build
run: npm run build

- name: Capture Git status
id: git
shell: bash
run: |
echo 'changes<<EOF' >> $GITHUB_OUTPUT
echo "$(git status --porcelain --untracked-files=all)" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
echo "nodeVersion=$(node --version)" >> $GITHUB_OUTPUT
echo "npmVersion=$(npm --version)" >> $GITHUB_OUTPUT
- name: Fail if changes detected
shell: bash
run: |
if [[ -n "${{ steps.git.outputs.changes }}" ]]; then
exit 1
fi
- name: Comment on pull request
if: failure()
uses: actions/github-script@v7
with:
script: |
const output = `Changed files were detected after build. Please run project build workflows and check \`git status\` for any missed changes.
\`\`\`
${{ steps.git.outputs.changes }}
\`\`\`
You may need to update your local NPM configuration if different than below:
* Node ${{ steps.git.outputs.nodeVersion }}
* NPM ${{ steps.git.outputs.npmVersion }}
`;
github.rest.issues.createComment({
...context.repo,
issue_number: context.payload.pull_request.number,
body: output
})

0 comments on commit fa45dc0

Please sign in to comment.