Skip to content

Commit

Permalink
Update: synced local '.github/workflows/verify-build.yml' with remote…
Browse files Browse the repository at this point in the history
… 'workflows/verify-build-16.yml'
  • Loading branch information
amiabot committed Nov 17, 2023
1 parent 30c5ab8 commit 4b35515
Showing 1 changed file with 44 additions and 23 deletions.
67 changes: 44 additions & 23 deletions .github/workflows/verify-build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
name: Node.js CI
# This file is managed in https://github.com/happyprime/projects
name: Verify build (Node 16)

on: [ pull_request ]

# The GITHUB_TOKEN used by Dependabot has read-only permissions
# by default, so we provide write permissions to this workflow
# so that comments can be left on the pull request.
# 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
Expand All @@ -10,37 +19,49 @@ jobs:

steps:
- name: Checkout project
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Setup Node.js LTS
uses: actions/setup-node@v2

- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
- name: Install latest NPM
run: npm install -g npm
- name: Install project dependencies
run: npm ci
- name: Run build process(es)
run: |
npm run build
- name: Check Git status
node-version: 16
cache: 'npm'

- name: Verify Node dependency cache
uses: actions/cache@v3
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: |
RESULT=$(git status)
RESULT="${RESULT//'%'/'%25'}"
RESULT="${RESULT//$'\n'/'%0A'}"
RESULT="${RESULT//$'\r'/'%0D'}"
echo "::set-output name=changes::$RESULT"
echo "::set-output name=nodeVersion::$(node --version)"
echo "::set-output name=npmVersion::$(npm --version)"
if [[ $RESULT == *"Changes not staged"* || $RESULT == *"Untracked files"* ]]; then
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@v4
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.
Expand All @@ -54,7 +75,7 @@ jobs:
* NPM ${{ steps.git.outputs.npmVersion }}
`;
github.issues.createComment({
github.rest.issues.createComment({
...context.repo,
issue_number: context.payload.pull_request.number,
body: output
Expand Down

0 comments on commit 4b35515

Please sign in to comment.