Skip to content

ci: make fork offline CI robust — 3.9 skip, mypy flags, warmer matrix (#831)#851

Merged
vikrantpuppala merged 1 commit into
mainfrom
fix/831-fork-ci-offline-followups
Jul 9, 2026
Merged

ci: make fork offline CI robust — 3.9 skip, mypy flags, warmer matrix (#831)#851
vikrantpuppala merged 1 commit into
mainfrom
fix/831-fork-ci-offline-followups

Conversation

@vikrantpuppala

Copy link
Copy Markdown
Contributor

Summary

Follow-ups from the fork verification run (#849) after the cache finally hit (#850 fixed the key mismatch). The offline restore mechanism works — 10 legs ran green offline, including all 5 kernel legs and check-linting 3.10–3.14. This PR fixes the three remaining offline-path failures the run surfaced:

  1. Python 3.9 can't be provisioned offline. The protected-runner image preinstalls 3.10–3.14 but not 3.9 (EOL), so actions/setup-python tries to download 3.9 and fails with no network on a fork. That hard-failed the 3.9 legs and — under fail-fast — cancelled the working 3.10–3.14 siblings. Fix: move setup-python into restore-deps with continue-on-error, probe the restored interpreter, and export venv-usable. Callers gate their offline run on venv-usable=='true' and skip 3.9 neutrally (3.9 fork coverage is in the merge queue) instead of failing. Keeps 3.9 in the matrix (per maintainer preference) without letting it sink the other legs.

  2. check-types offline ran mypy --non-interactive src, which mypy rejects without --install-types (--non-interactive is only supported with --install-types). The warmer already primed the stubs into the venv, so run plain mypy src.

  3. Warmer matrix mismatch. The warmer excluded 3.14-min but the PR matrix runs 3.14-min pyarrow (PR excludes only 3.12-min/3.13-min) — that leg missed the cache and fell back to JFrog. Align the warmer's excludes to the PR matrix exactly.

Test plan

Refs #831

This pull request and its description were written by Isaac.

…#831)

Follow-ups from the fork verification run (#849) once the cache finally hit.
The offline restore mechanism works (10 legs green offline incl. all kernel
legs); these fix the remaining offline-path failures:

1. Python 3.9 can't be provisioned offline — the protected-runner image
   preinstalls 3.10-3.14 but not 3.9 (EOL), so setup-python tries to DOWNLOAD
   it and fails with no network on a fork. That hard-failed the 3.9 legs and,
   under fail-fast, cancelled the working 3.10-3.14 siblings. Move
   setup-python into restore-deps with continue-on-error, probe the restored
   interpreter, and export venv-usable; callers gate their offline run on it
   and skip 3.9 neutrally (3.9 fork coverage is in the merge queue) instead of
   failing. Keeps 3.9 in the matrix per maintainer preference without letting
   it sink the other legs.

2. check-types offline ran , which mypy rejects
   without --install-types ('--non-interactive is only supported with
   --install-types'). The warmer already primed the stubs into the venv, so
   run plain .

3. The warmer excluded 3.14-min but the PR matrix runs 3.14-min pyarrow (PR
   excludes only 3.12-min/3.13-min) — that leg missed the cache and fell back
   to JFrog. Align the warmer's excludes to the PR matrix exactly.

Refs #831

Co-authored-by: Isaac
Signed-off-by: Vikrant Puppala <vikrant.puppala@databricks.com>
@vikrantpuppala vikrantpuppala merged commit 37320a5 into main Jul 9, 2026
53 checks passed
vikrantpuppala added a commit to vikrantpuppala/databricks-sql-python that referenced this pull request Jul 9, 2026
…warmed) (databricks#831)

Signed-off-by: Vikrant Puppala <vikrant.puppala@databricks.com>
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