mirror of
https://github.com/projectsend/projectsend.git
synced 2026-09-16 16:45:07 +00:00
457fed0c86
The tests job spent 191 of its 270 seconds running the suite one process at a time; --parallel runs the same 1763 tests across the runner's cores with nothing skipped. paratest is already a dev dependency. The linter job was worse: 150 of its 195 seconds went to `pint` with no --test and its auto-commit step commented out, so it reformatted the runner's checkout, exited 0 and threw the result away. `npm run format` is `prettier --write` and did the same. Both are gone, with a note on what reinstating them as real gates would take -- a formatting sweep first, then the flag. What remains is eslint, now read-only so it can actually fail, and the job no longer needs PHP at all. Both workflows now cancel superseded runs, and neither runs for a change that only touches prose nobody's code reads. CHANGELOG.md and docs/ are deliberately absent from that list: ReleaseNotes parses one and two controllers serve the other.
71 lines
2.0 KiB
YAML
71 lines
2.0 KiB
YAML
name: linter
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- develop
|
|
- main
|
|
paths:
|
|
# Only the frontend is actually checked here, so only the frontend
|
|
# needs to trigger it.
|
|
- 'resources/**'
|
|
- 'package.json'
|
|
- 'package-lock.json'
|
|
- 'eslint.config.js'
|
|
- '.prettierrc*'
|
|
- 'tsconfig.json'
|
|
- '.github/workflows/lint.yml'
|
|
pull_request:
|
|
branches:
|
|
- develop
|
|
- main
|
|
paths:
|
|
- 'resources/**'
|
|
- 'package.json'
|
|
- 'package-lock.json'
|
|
- 'eslint.config.js'
|
|
- '.prettierrc*'
|
|
- 'tsconfig.json'
|
|
- '.github/workflows/lint.yml'
|
|
|
|
# A second push supersedes the first.
|
|
concurrency:
|
|
group: linter-${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
quality:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '22'
|
|
cache: 'npm'
|
|
|
|
- name: Install Dependencies
|
|
run: npm ci
|
|
|
|
# `eslint .` rather than `npm run lint`, which is `eslint . --fix`:
|
|
# a formatter that rewrites the checkout and throws the result away
|
|
# cannot fail a build, so it was never a gate. This one is.
|
|
- name: Lint Frontend
|
|
run: npx eslint .
|
|
|
|
# Two steps used to live here and were removed on 2026-08-23, because
|
|
# neither could ever fail:
|
|
#
|
|
# - `vendor/bin/pint`, without `--test` and with the auto-commit step
|
|
# commented out. It reformatted the runner's checkout, exited 0 and
|
|
# threw the result away — 150 seconds of this job's 195, gating
|
|
# nothing. Reinstating it as a real gate means `pint --test`, which
|
|
# today reports around a hundred pre-existing failures; the honest
|
|
# order is a formatting sweep first, then the flag.
|
|
#
|
|
# - `npm run format`, which is `prettier --write`, for the same reason.
|
|
# `prettier --check` currently reports 44 files, so the same applies:
|
|
# sweep, then switch. `npm run format:check` is the command.
|
|
#
|
|
# Dropping them also let the PHP toolchain go: nothing left here needs it.
|