73 lines
2 KiB
YAML
73 lines
2 KiB
YAML
|
# In TypeScript actions, `dist/` is a special directory. When you reference
|
||
|
# an action with the `uses:` property, `dist/index.js` is the code that will be
|
||
|
# run. For this project, the `dist/index.js` file is transpiled from other
|
||
|
# source files. This workflow ensures the `dist/` directory contains the
|
||
|
# expected transpiled code.
|
||
|
#
|
||
|
# 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:
|
||
|
pull_request:
|
||
|
branches:
|
||
|
- main
|
||
|
push:
|
||
|
branches:
|
||
|
- main
|
||
|
|
||
|
permissions:
|
||
|
contents: read
|
||
|
|
||
|
jobs:
|
||
|
check-dist:
|
||
|
name: Check dist/
|
||
|
runs-on: ubuntu-latest
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout
|
||
|
id: checkout
|
||
|
uses: actions/checkout@v4
|
||
|
|
||
|
- name: Setup Node.js
|
||
|
id: setup-node
|
||
|
uses: actions/setup-node@v4
|
||
|
with:
|
||
|
node-version-file: .node-version
|
||
|
cache: npm
|
||
|
|
||
|
- name: Install Dependencies
|
||
|
id: install
|
||
|
run: npm ci
|
||
|
|
||
|
- name: Build dist/ Directory
|
||
|
id: build
|
||
|
run: npm run bundle
|
||
|
|
||
|
# This will fail the workflow if the `dist/` directory is different than
|
||
|
# expected.
|
||
|
- name: Compare Directories
|
||
|
id: diff
|
||
|
run: |
|
||
|
if [ ! -d dist/ ]; then
|
||
|
echo "Expected dist/ directory does not exist. See status below:"
|
||
|
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
|
||
|
fi
|
||
|
|
||
|
# If `dist/` was different than expected, upload the expected version as a
|
||
|
# workflow artifact.
|
||
|
- if: ${{ failure() && steps.diff.outcome == 'failure' }}
|
||
|
name: Upload Artifact
|
||
|
id: upload
|
||
|
uses: actions/upload-artifact@v4
|
||
|
with:
|
||
|
name: dist
|
||
|
path: dist/
|