Skip to content

acc: replace DATABRICKS_TEST_SKIPLOCAL with DATABRICKS_TEST_SELECT_CHANGED=N - #6248

Open
denik wants to merge 12 commits into
mainfrom
denik/skiplocal-withchanged
Open

acc: replace DATABRICKS_TEST_SKIPLOCAL with DATABRICKS_TEST_SELECT_CHANGED=N#6248
denik wants to merge 12 commits into
mainfrom
denik/skiplocal-withchanged

Conversation

@denik

@denik denik commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Changes

  • DATABRICKS_TEST_SKIPLOCAL=withchanged becomes DATABRICKS_TEST_SELECT_CHANGED=N, where N is the number of changed tests to select (was hardcoded at 50).
  • The selection moved to acceptance/internal/selection, with a command to inspect what a change would run: go run ./acceptance/internal/selection/cmd [path...].
  • Tests are scored before the cap applies: added 10, changed fixture 5, moved 2, and -1 when only generated out* files changed. A regenerated golden lands on hundreds of dirs at once, so it must not crowd out the tests the branch actually edits.
  • Unselected tests are dropped rather than skipped one by one, and the selection is logged at startup, including how many changed tests did not fit the limit.
  • integration-short-skiplocal is renamed to cloud-select and kept as an alias, since that is the name the eng-dev-ecosystem CI job dispatches.
  • New ./task local-select runs the same selection locally against the testserver.

Why

"skiplocal" stopped meaning anything after #6196 dropped the Local knob — every acceptance test runs locally now, so the variable only selects the tests a branch touches.

denik added 4 commits August 12, 2026 12:26
…ANGED=N

N is the number of changed tests to select, previously hardcoded at 50.
Moved tests are now selected after added and modified ones, and the
selection is logged at startup.
Keep the old name as an alias: it is what the eng-dev-ecosystem CI job
dispatches.
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: ae707e0

Run: 31724841282

Env 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
💚​ aws linux 4 286 15 6:47
💚​ aws windows 4 288 13 4:45
💚​ azure linux 4 285 15 6:48
💚​ azure windows 4 287 13 4:54
💚​ gcp linux 1 1 286 15 7:12
💚​ gcp windows 1 1 288 13 4:31
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo 💚​R 💚​R 💚​R 💚​R 🙈​S 🙈​S
💚​ TestFetchRepositoryInfoAPI_FromRepo/root 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo/subdir 💚​R 💚​R 💚​R 💚​R
Top 6 slowest tests (at least 2 minutes):
duration env testname
2:58 aws linux TestAccept
2:53 gcp windows TestAccept
2:51 gcp linux TestAccept
2:51 aws windows TestAccept
2:50 azure linux TestAccept
2:48 azure windows TestAccept

denik added 3 commits August 12, 2026 14:51
local-select runs the same selection of changed tests locally against the
testserver. TestInprocessMode is skipped under test selection: it asserts
that two specific selftests ran, which does not hold when the selection
excludes them.
A skip per test dir buried the run in ~1100 SKIP lines and hid the
selection summary. local-select now runs plain `go test -v`, which shows
the summary and the tests that ran.
A regenerated golden usually comes from a change elsewhere and lands on
hundreds of dirs at once, which fills the quota and crowds out the tests
the branch actually edits. Order is now added, changed fixture, changed
output, moved.
@denik
denik added this pull request to the merge queue Aug 13, 2026
@denik
denik removed this pull request from the merge queue due to a manual request Aug 13, 2026
denik added 5 commits August 13, 2026 15:53
Same rule the harness uses to split inputs from outputs, so a nested
fixture such as subdir/outer.py is no longer mistaken for generated
output.
Replace the four parallel maps with one map of a documented changedDir
struct, pull the invariant-config and generated-file rules into named
helpers, and rank by sorting once instead of concatenating four slices.
Scores instead of ranks, and the selection is now a real package rather
than test-only code, with a command to inspect what a change selects:

    go run ./acceptance/internal/selection/cmd
    go run ./acceptance/internal/selection/cmd acceptance/bundle/invariant/configs/job.yml.tmpl
A path given without a status prefix now takes the status git reports for
it: added when git does not track it, modified otherwise. Each selected
test is printed with the score it was picked by.
A dir that changed in several ways now outranks one that changed in a
single way: new dir 5, changed fixtures 5, changed goldens 1, move 1. New
and moved stay exclusive, and a move does not also count the renames of
the files it brings along.
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.

3 participants