name: check dist/

on:
   push:
     branches:
       - master
     paths-ignore:
       - '**.md'
   pull_request:
     paths-ignore:
       - '**.md'
   workflow_dispatch:

jobs:
  check-dist:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup Node.js 20.x
        uses: actions/setup-node@v3
        with:
          node-version: 20.x
          cache: npm

      - name: Install dependencies
        run: npm ci

      - name: Rebuild the dist/ directory
        run: npm run prepare

      - name: Compare the expected and actual dist/ directories
        run: |
          if [ "$(git diff dist/ | wc -l)" -gt "0" ]; then
            echo "Detected uncommitted changes after build. See status below:"
            git diff
            exit 1
          fi
        id: diff

      - uses: actions/upload-artifact@v3
        if: ${{ failure() && steps.diff.conclusion == 'failure' }}
        with:
          name: dist
          path: dist/