Skip to content

ci(min-deps): promote min-deps to first-class CI alongside latest-deps#1480

Open
sd-db wants to merge 2 commits into
mainfrom
sd-db/feat/min-deps-first-class-ci
Open

ci(min-deps): promote min-deps to first-class CI alongside latest-deps#1480
sd-db wants to merge 2 commits into
mainfrom
sd-db/feat/min-deps-first-class-ci

Conversation

@sd-db
Copy link
Copy Markdown
Collaborator

@sd-db sd-db commented May 25, 2026

Summary

Today, min-deps tests fire post-merge (always) and on internal PRs (best-effort). Fork PRs are skipped because the protected runner needs a JFrog OIDC token only the databricks/dbt-databricks subject can mint. This PR makes min-deps a first-class CI citizen alongside latest-deps so lower-bound regressions surface pre-merge on every PR — including forks.

  • Single combined cache. warmDepsCache.yml now creates min-deps + verify-min-deps envs and downloads the lowest-direct closure into the shared wheelhouse. The cache key includes requirements.lowest-direct.txt. uv stores wheels content-addressed by hash, so wheels identical across resolutions are stored once.
  • main-min-deps.yml (renamed from min-deps-test-fast.yml): mirrors main.ymlsetup-python-deps cache restore + JFrog fallback, concurrency with cancel-in-progress, paths-ignore for *.md. Fork-skip guards removed; cache makes fork PRs work offline.
  • integration-min-deps.yml (renamed from min-deps-test-slow.yml): adds workflow_dispatch with pr_numbers / git_ref inputs, full target parser, and a report-status job posting a result comment back to the PR — same shape as integration.yml. Schedule stays nightly at 19:30 UTC.
  • integration-trigger.yml: parses the first arg after /integration-test. min-depsintegration-min-deps.yml; anything else → integration.yml (free-form trailing context preserved).

Test plan

  • Warm cache populates with new key shape. Dispatch this PR-branch's warmDepsCache.yml (gh workflow run warmDepsCache.yml --ref sd-db/feat/min-deps-first-class-ci). Confirm logs show hatch env create min-deps + hatch env create verify-min-deps, second pip download --no-deps --require-hashes -r requirements.lowest-direct.txt step, and cache key derived from the 3-file hash.
  • Workflows restore offline after warm. Push an empty commit to re-trigger main.yml + main-min-deps.yml. In each job, confirm Setup Python Dependencies reports cache-hit: true and Setup JFrog PyPI Proxy (fallback) shows as skipped. Unit + build jobs pass.
  • /integration-test min-deps routes correctly. Comment /integration-test min-deps on this PR. Verify integration-trigger.yml dispatches integration-min-deps.yml (not integration.yml); reply comment names "Min-deps integration tests"; report-status posts back with min-deps results.
  • /integration-test still routes to latest-deps. Comment /integration-test on this PR. Verify integration.yml is dispatched (regression check on the trigger parsing).
  • Nightly skip-if-unchanged. Confirm integration-min-deps.yml's prepare job short-circuits on a re-run against the same main SHA (manually dispatch twice against main; second run emits empty targets).

- setup-python-deps + warmDepsCache: cache key hash includes
  requirements.lowest-direct.txt; warm job creates min-deps + verify-min-deps
  envs and downloads the lowest-direct closure into the wheelhouse so fork
  PRs can run min-deps tests fully offline from cache.
- main-min-deps.yml (renamed from min-deps-test-fast.yml): mirrors main.yml
  shape — cache-restore + JFrog fallback, concurrency with cancel-in-progress,
  paths-ignore for *.md. Fork-skip guards removed; cache makes forks work.
- integration-min-deps.yml (renamed from min-deps-test-slow.yml): adds
  workflow_dispatch with pr_numbers / git_ref inputs, full target parser, and
  a report-status job that posts a result comment back to the PR — mirroring
  integration.yml for the slash-command path.
- integration-trigger.yml: parses the first arg after /integration-test.
  /integration-test min-deps routes to integration-min-deps.yml; anything
  else falls through to integration.yml (free-form trailing context).
@sd-db sd-db requested a review from jprakash-db as a code owner May 25, 2026 07:22
@sd-db
Copy link
Copy Markdown
Collaborator Author

sd-db commented May 25, 2026

/integration-test min-deps

@sd-db
Copy link
Copy Markdown
Collaborator Author

sd-db commented May 25, 2026

/integration-test

@github-actions
Copy link
Copy Markdown

Integration tests dispatched for PR #1480 by @sd-db. Track progress in the Actions tab.

1 similar comment
@github-actions
Copy link
Copy Markdown

Integration tests dispatched for PR #1480 by @sd-db. Track progress in the Actions tab.

@github-actions
Copy link
Copy Markdown

Integration results for PR #1480 — UC cluster ❌ cancelled · SQL warehouse ❌ cancelled · All-purpose cluster ❌ cancelled · Shard coverage ❌ cancelled

Run details.

@github-actions
Copy link
Copy Markdown

Coverage report

This PR does not seem to contain any modification to coverable code.

@github-actions
Copy link
Copy Markdown

Integration results for PR #1480 — UC cluster ❌ failure · SQL warehouse ❌ failure · All-purpose cluster ✅ success · Shard coverage ✅ success

Run details.

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