Skip to content

Commit

Permalink
ci: update check-dist.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
hoho4190 committed Feb 24, 2024
1 parent f9f3bdb commit 0e0fc30
Showing 1 changed file with 36 additions and 21 deletions.
57 changes: 36 additions & 21 deletions .github/workflows/check-dist.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
# `dist/index.js` is a special file in Actions.
# When you reference an action with `uses:` in a workflow,
# `index.js` is the code that will run.
# For our project, we generate this file through a build process from other source files.
# We need to make sure the checked-in `index.js` actually matches what we expect it to be.
name: Check dist/
# 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:
push:
Expand All @@ -16,39 +20,50 @@ on:
# - '**.md'
workflow_dispatch:

permissions:
contents: read

jobs:
check-dist:
name: Check dist/
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Checkout
id: checkout
uses: actions/checkout@v4

- name: Set Node.js
- name: Setup Node.js
id: setup-node
uses: actions/setup-node@v4.0.2
with:
node-version: 20
cache: npm

- name: Install dependencies
- name: Install Dependencies
id: install
run: npm ci

- name: Rebuild the dist/ directory
run: |
npm run build
npm run package
- name: Build dist/ Directory
id: build
run: npm run bundle

- name: Compare the expected and actual dist/ directories
if: github.event.sender.type != 'Bot'
# This will fail the workflow if the PR wasn't created by Dependabot.
- name: Compare Directories
id: diff
run: |
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
echo "Detected uncommitted changes after build. See status below:"
git diff --ignore-space-at-eol --text dist/
exit 1
fi
id: diff
# If index.js was different than expected, upload the expected version as an artifact
- uses: actions/upload-artifact@v4
if: github.event.sender.type != 'Bot' && ${{ failure() && steps.diff.conclusion == 'failure' }}
# If `dist/` was different than expected, and this was not a Dependabot
# PR, upload the expected version as a workflow artifact.
- if: github.event.sender.type != 'Bot' && ${{ failure() && steps.diff.outcome == 'failure' }}
name: Upload Artifact
id: upload
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

0 comments on commit 0e0fc30

Please sign in to comment.