diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..f352b78 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,46 @@ +name: ESLint + +on: + pull_request: + types: [opened, synchronize] + +concurrency: + group: eslint-${{ github.ref }} + cancel-in-progress: true + +jobs: + lint: + runs-on: ubuntu-latest + env: + CI: true + steps: + - name: Checkout + uses: actions/checkout@4 + + - name: Remove version from package-lock.json + run: jq 'del(.version, .packages[""].version)' package-lock.json > normalized-package-lock.json + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + cache-dependency-path: normalized-package-lock.json + + - name: Cache node_modules + id: cache-node-modules + uses: actions/cache@v4 + with: + path: node_modules + key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json') }} + + - name: Run npm install + if: steps.cache-node-modules.outputs.cache-hit != 'true' + uses: nick-fields/retry@3f757583fb1b1f940bc8ef4bf4734c8dc02a5847 + with: + timeout_minutes: 30 + max_attempts: 3 + command: npm ci + + - name: Run ESLint + run: npm run lint