Make the PR workflow a real gate

- continue-on-error is removed; lint, test and build each have to pass,
  and fail-fast is off so each reports on its own
- after each step the tree must be unchanged (eslint --fix,
  packageInfo.ts written by the build)
- after build, scripts/check-built-manifests.py checks the package.json
  npm receives from each build/ directory
- push-main installs with --immutable and checks the manifests too
- the auto-approve and auto-merge bots are removed
This commit is contained in:
Satoshi Qazi Muhammed authored and SatoshiQaziMuhammed committed 2026-10-08 11:10:19 +04:00
1 parent 5daf8f1435
commit f9f596d7ce
5 files changed
+118 -37

No files matched your search

+13 -1
View File
@@ -3,8 +3,9 @@ on: [pull_request]
jobs:
pr:
continue-on-error: true
strategy:
# Each step reports on its own; one red step must not cancel the others.
fail-fast: false
matrix:
step: ['lint', 'test', 'build']
runs-on: ubuntu-latest
@@ -17,5 +18,16 @@ jobs:
node-version: 'lts/*'
- name: ${{ matrix.step }}
run: |
corepack enable
yarn install --immutable
yarn ${{ matrix.step }}
# `yarn lint` runs eslint --fix and `yarn build` rewrites packageInfo.ts,
# so both pass on a tree they changed. The committed tree must already be
# what they produce.
- name: tree unchanged
run: git diff --exit-code --stat
# The package.json each build/ directory holds is what npm receives: entry
# points must exist, no ./build/ or ./cjs/cjs/ paths, no workspace: ranges.
- name: check built manifests
if: matrix.step == 'build'
run: python3 scripts/check-built-manifests.py .