Skip to content

chore: merge main into dev (install failures fail the check, time limits, pipefail) - #279

Merged
khushalsonawat merged 4 commits into
devfrom
main
Oct 19, 2026
Merged

khushalsonawat merged 4 commits into
devfrom
main

Conversation

@khushalsonawat

Copy link
Copy Markdown
Member

What does this PR do?

Brings dev up to date with main again, so dev's Python tests check gets the rules from #278 before it is made required on dev:

  • a failed install fails the check, whether or not the package is on the known-broken list;
  • every job has a time limit, and the PR-base fetch is capped at 120 seconds;
  • every step runs with pipefail (defaults: run: shell: bash).

dev has no changes of its own: it is one merge commit (#277) ahead of main, with the same files as main before #278. So this merges cleanly and brings exactly #278's six files. Please merge it with a merge commit (not squash or rebase), so dev and main keep one history.

Why?

#277 gave dev the workflow, but #278 merged into main after it. Without this, dev's check runs the older rules.

Linear: TH-8682 (follow-up to TH-8673).

How was it tested?

  • This PR's own CI. It changes the CI files and python/fi_instrumentation/, so it tests all 49 packages, each with this repo's fi_instrumentation installed, plus fi_instrumentation's own tests.
  • The same change is already green on main: run 39298772017, 52 of 52.

🤖 Generated with Claude Code

khushalsonawat and others added 4 commits October 19, 2026 21:56
… (TH-8682)

A failed install now fails the check whether or not the package is on
the known-broken list. The install steps lose continue-on-error, so a
failed install fails its own step and the package's tests do not run on
a broken environment; the known-broken verdict also fails on any failed
install, instead of warning.

Every job gets a timeout-minutes (Plan 10, fi_instrumentation 30,
package 45, result 5; the slowest job seen takes about a minute), and
the PR-base fetch is limited to 120 s, falling back to running every
package. The planner's tests pin each of these.

A docstring fix in fi_instrumentation's context_attributes.py also makes
this PR's CI install the repo's core into all 49 packages, proving that
path once.

Signed-off-by: khushalsonawat <[email protected]>
…TH-8682)

The workflow now sets defaults.run.shell to bash, so GitHub runs every
step as bash -eo pipefail: a failed install piped through tee fails the
step. The planner's tests pin that default and allow no other shell.

The install steps' tests now pin each script command by command, its
if:, and no continue-on-error, ||, pipe, set + or shell override, so a
wrapper that swallows a failed install (|| :, if !, | tee, trap, a
function or bash -c) fails the suite. The Tests step must have no if:,
so it never runs after a failed install. Every job found under jobs:
must have a job-level time limit.

Signed-off-by: khushalsonawat <[email protected]>
ci: a failed install fails the check, and every job gets a time limit (TH-8682)
@khushalsonawat
khushalsonawat merged commit e39de77 into dev Oct 19, 2026
104 checks passed
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.

2 participants