Update check-dist.yml workflow with template.

This commit is contained in:
Fabio Niephaus 2025-01-21 13:13:13 +01:00 committed by Fabio Niephaus
parent af56e29ad9
commit eb58450822
2 changed files with 42 additions and 20 deletions

View File

@ -1,9 +1,13 @@
# `dist/index.js` is a special file in Actions. # In TypeScript actions, `dist/` is a special directory. When you reference
# When you reference an action with `uses:` in a workflow, # an action with the `uses:` property, `dist/index.js` is the code that will be
# `index.js` is the code that will run. # run. For this project, the `dist/index.js` file is transpiled from other
# For our project, we generate this file through a build process from other source files. # source files. This workflow ensures the `dist/` directory contains the
# We need to make sure the checked-in `index.js` actually matches what we expect it to be. # expected transpiled code.
name: Check dist/ #
# If this workflow is run from a feature branch, it will act as an additional CI
# check and fail if the checked-in `dist/` directory does not match what is
# expected from the build.
name: Check Transpiled JavaScript
on: on:
push: push:
@ -16,40 +20,57 @@ on:
paths-ignore: paths-ignore:
- '**.md' - '**.md'
workflow_dispatch: workflow_dispatch:
permissions: permissions:
contents: read contents: read
jobs: jobs:
check-dist: check-dist:
name: Check dist/
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - name: Checkout
id: checkout
uses: actions/checkout@v4
- name: Set Node.js 20.x - name: Setup Node.js
id: setup-node
uses: actions/setup-node@v4 uses: actions/setup-node@v4
with: with:
node-version: 20.x node-version-file: .node-version
cache: npm cache: npm
- name: Install dependencies - name: Install Dependencies
id: install
run: npm ci run: npm ci
- name: Rebuild the dist/ directory - name: Build dist/ Directory
run: npm run build id: build
run: npm run bundle
- name: Compare the expected and actual dist/ directories # This will fail the workflow if the `dist/` directory is different than
# expected.
- name: Compare Directories
id: diff
run: | run: |
if [ "$(git diff --ignore-space-at-eol dist/ | wc -l)" -gt "0" ]; then if [ ! -d dist/ ]; then
echo "Detected uncommitted changes after build. See status below:" echo "Expected dist/ directory does not exist. See status below:"
git diff ls -la ./
exit 1
fi
if [ "$(git diff --ignore-space-at-eol --text dist/ | wc -l)" -gt "0" ]; then
echo "Detected uncommitted changes after build. See status below:"
git diff --ignore-space-at-eol --text dist/
exit 1 exit 1
fi fi
id: diff
# If index.js was different than expected, upload the expected version as an artifact # If `dist/` was different than expected, upload the expected version as a
- uses: actions/upload-artifact@v4 # workflow artifact.
if: ${{ failure() && steps.diff.conclusion == 'failure' }} - if: ${{ failure() && steps.diff.outcome == 'failure' }}
name: Upload Artifact
id: upload
uses: actions/upload-artifact@v4
with: with:
name: dist name: dist
path: dist/ path: dist/

1
.node-version Normal file
View File

@ -0,0 +1 @@
20.9.0