Skip to content

chore(ci): cap the unit shards at 30 min and stop restoring stale ESLint caches - #11963

Merged
diegosouzapw merged 1 commit into
release/v3.8.51from
chore/ci-fast-unit-timeout-eslint-cache
Aug 29, 2026
Merged

diegosouzapw merged 1 commit into
release/v3.8.51from
chore/ci-fast-unit-timeout-eslint-cache

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

Duas proteções que o fechamento da v3.8.50 pediu

mudança motivo
fast-unit: timeout-minutes: 30 um shard leva ~10 min; sem teto, um processo travado segura a PR pelas 6 h padrão do GitHub. Em 28/08 o shard 1/4 ficou 64 min sem uma linha de saída (2× no mesmo ponto — corrida de timing que sumiu na 3ª tentativa) com os outros 3 verdes há muito. Vermelho rápido + re-run > espera silenciosa
caches de ESLint (2 blocos) sem restore-keys a chave já hasheia config de lint + supressões + lockfile; o fallback restaurava cache de outra configuração e os vereditos por arquivo obsoletos são exatamente como 215 erros pré-existentes ficaram invisíveis por um ciclo (#11600, P-II.1 do postmortem). Chave exata ou lint frio (~13 min) — nunca cache parcial

Sem mudança de comportamento fora disso. check:workflows --ratchet 194/194; check-workflows.test.ts 32/32; prettier limpo.

⚠️ base-red inherited: #11946 (até a #11962 entrar)

…int caches

- quality.yml fast-unit: timeout-minutes: 30. A shard finishes in ~10 min; without
  a ceiling a hung test process holds the PR for GitHub's 6 h default. On
  2026-08-28 shard 1/4 sat 64 min without a line of output — twice at the same spot,
  a timing race that vanished on the third run — while the other three shards were
  long green. A fast red plus a re-run beats a silent multi-hour hold.
- quality.yml lint-guard + the earlier ESLint cache block: drop the
  `restore-keys: eslint-<os>-` fallback (#11600, P-II.1 of the v3.8.50 postmortem).
  The key already hashes the lint config, the suppressions file and the lockfile;
  the fallback restored a cache built under a DIFFERENT configuration and its stale
  per-file verdicts are how 215 pre-existing errors stayed invisible for a cycle.
  Exact key or a cold full lint — never a partial cache from another configuration.

check:workflows --ratchet unchanged (194/194); check-workflows suite 32/32.
@diegosouzapw
diegosouzapw merged commit 3d12564 into release/v3.8.51 Aug 29, 2026
20 of 22 checks passed
@diegosouzapw
diegosouzapw deleted the chore/ci-fast-unit-timeout-eslint-cache branch August 29, 2026 01:43
diegosouzapw added a commit that referenced this pull request Aug 29, 2026
#11600) (#11996)

Fixes the blocking Lint job's own ci.yml cache: PR #11963 removed the stale restore-keys fallback from quality.yml but left ci.yml's two "Restore ESLint file cache" steps carrying the same prefix-match fallback that lets a cache from a different lint config report stale per-file verdicts. Byte-level parity with #11963's already-merged fix.

Deliberately half of #11600 — the other half (run-eslint-json.mjs) is covered by PR #11983 from a parallel session, so the two don't collide on the same file.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…int caches (diegosouzapw#11963)

- quality.yml fast-unit: timeout-minutes: 30. A shard finishes in ~10 min; without
  a ceiling a hung test process holds the PR for GitHub's 6 h default. On
  2026-08-28 shard 1/4 sat 64 min without a line of output — twice at the same spot,
  a timing race that vanished on the third run — while the other three shards were
  long green. A fast red plus a re-run beats a silent multi-hour hold.
- quality.yml lint-guard + the earlier ESLint cache block: drop the
  `restore-keys: eslint-<os>-` fallback (diegosouzapw#11600, P-II.1 of the v3.8.50 postmortem).
  The key already hashes the lint config, the suppressions file and the lockfile;
  the fallback restored a cache built under a DIFFERENT configuration and its stale
  per-file verdicts are how 215 pre-existing errors stayed invisible for a cycle.
  Exact key or a cold full lint — never a partial cache from another configuration.

check:workflows --ratchet unchanged (194/194); check-workflows suite 32/32.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
diegosouzapw#11600) (diegosouzapw#11996)

Fixes the blocking Lint job's own ci.yml cache: PR diegosouzapw#11963 removed the stale restore-keys fallback from quality.yml but left ci.yml's two "Restore ESLint file cache" steps carrying the same prefix-match fallback that lets a cache from a different lint config report stale per-file verdicts. Byte-level parity with diegosouzapw#11963's already-merged fix.

Deliberately half of diegosouzapw#11600 — the other half (run-eslint-json.mjs) is covered by PR diegosouzapw#11983 from a parallel session, so the two don't collide on the same file.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant