# In JavaScript actions, `dist/index.js` is a special file. When you reference # an action with `uses:`, `dist/index.js` is the code that will be run. For this # project, the `dist/index.js` file is generated from other source files through # the build process. We need to make sure that the checked-in `dist/index.js` # file matches what is expected from the build. # # This workflow will fail if the checked-in `dist/index.js` file does not match # what is expected from the build. name: Check dist/ on: push: branches: - main paths-ignore: - '**.md' pull_request: paths-ignore: - '**.md' workflow_dispatch: jobs: check-dist: name: Check dist/ runs-on: ubuntu-latest permissions: contents: read statuses: write steps: - name: Checkout id: checkout uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 20 cache: npm - name: Install Dependencies id: install run: npm ci - name: Build dist/ Directory id: build run: npm run bundle - name: Compare Expected and Actual 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 --ignore-space-at-eol --text dist/ exit 1 fi # If index.js was different than expected, upload the expected version as # a workflow artifact. - uses: actions/upload-artifact@v3 if: ${{ failure() && steps.diff.conclusion == 'failure' }} with: name: dist path: dist/