Skip to content

Run OS-independent bundle acceptance tests on Linux only for PRs#5876

Merged
pietern merged 1 commit into
mainfrom
investigate-timing
Jul 9, 2026
Merged

Run OS-independent bundle acceptance tests on Linux only for PRs#5876
pietern merged 1 commit into
mainfrom
investigate-timing

Conversation

@pietern

@pietern pietern commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Most Windows/macOS acceptance time re-runs platform-independent bundle logic that Linux already covers. This adds a mechanism to skip such tests on the Windows/macOS PR cells, while still running the full matrix on every OS on push to main.

New GOOSOnPR field in test.toml, mirroring the existing GOOS filter but consulted only on GitHub pull_request events. It ANDs with GOOS, inherits down the directory tree, is opt-out (absent = runs everywhere), and surfaces in out.test.toml. No workflow changes — the event name comes from GITHUB_EVENT_NAME.

  • acceptance/internal/config.goGOOSOnPR map[string]bool
  • acceptance/internal/materialized_config.go — serialize into out.test.toml
  • acceptance/acceptance_test.goIsPullRequest + skip branch beside the GOOS check

Paths no longer run on Windows/macOS for PRs (each verified to have no OS-specific behavior; all still run on Linux for PRs and on every OS on push to main):

  • bundle/invariant — config normalization, no-drift checks, state migration
  • bundle/resources — resource CRUD, diffing, permissions
  • bundle/resource_deps — dependency ordering and reference resolution
  • bundle/run_as — run_as identity resolution
  • bundle/migrate — state and config migration
  • bundle/state — deployment state tracking and lineage
  • bundle/bundle_tag — tag validation
  • bundle/lifecycle — deploy/destroy lifecycle
  • bundle/summary — summary rendering

This pull request and its description were written by Isaac.

Add a GOOSOnPR filter in test.toml, mirroring the existing GOOS filter but
consulted only on GitHub pull_request events. It ANDs with GOOS, inherits down
the directory tree, is opt-out (absent = runs everywhere), and surfaces in
out.test.toml. The event name comes from GITHUB_EVENT_NAME, so no workflow
changes are needed.

Skip the following bundle subtrees on Windows/macOS for PRs (each verified to
have no OS-specific behavior; all still run on Linux for PRs and on every OS on
push to main): invariant, resources, resource_deps, run_as, migrate, state,
bundle_tag, lifecycle, summary.

Co-authored-by: Isaac
@pietern pietern force-pushed the investigate-timing branch from c87aaec to 452684f Compare July 9, 2026 10:04
@pietern pietern temporarily deployed to test-trigger-is July 9, 2026 10:05 — with GitHub Actions Inactive
@pietern pietern temporarily deployed to test-trigger-is July 9, 2026 10:05 — with GitHub Actions Inactive
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 452684f

Run: 29010560173

Env 🔄​flaky 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
💚​ aws linux 4 4 230 1077 5:07
💚​ aws windows 4 4 232 1075 7:12
💚​ aws-ucws linux 4 4 314 995 9:36
💚​ aws-ucws windows 4 4 316 993 8:10
🔄​ azure linux 2 4 4 228 1076 5:21
💚​ azure windows 4 4 232 1074 7:03
💚​ azure-ucws linux 4 4 316 992 8:11
💚​ azure-ucws windows 4 4 318 990 7:41
💚​ gcp linux 4 4 229 1078 5:18
💚​ gcp windows 4 4 231 1076 7:09
10 interesting tests: 4 RECOVERED, 4 SKIP, 2 flaky
Test Name aws linux aws windows aws-ucws linux aws-ucws windows azure linux azure windows azure-ucws linux azure-ucws windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
🙈​ TestAccept/bundle/invariant/no_drift 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/ssh/connection 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🔄​ TestFilerWorkspaceNotebook ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p ✅​p ✅​p
🔄​ TestFilerWorkspaceNotebook/rJupyterNb.ipynb ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p ✅​p ✅​p
💚​ TestFetchRepositoryInfoAPI_FromRepo 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo/root 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo/subdir 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
Top 11 slowest tests (at least 2 minutes):
duration env testname
6:19 azure-ucws windows TestAccept
6:17 aws windows TestAccept
6:17 aws-ucws windows TestAccept
6:14 gcp windows TestAccept
6:00 azure windows TestAccept
3:08 aws-ucws linux TestAccept
2:59 azure linux TestAccept
2:58 gcp linux TestAccept
2:56 aws linux TestAccept
2:50 azure-ucws linux TestAccept
2:27 aws-ucws linux TestAccept/bundle/deploy/mlops-stacks/DATABRICKS_BUNDLE_ENGINE=terraform

@pietern pietern enabled auto-merge July 9, 2026 12:29
@pietern pietern added this pull request to the merge queue Jul 9, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 9, 2026
@pietern pietern added this pull request to the merge queue Jul 9, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 9, 2026
@pietern pietern added this pull request to the merge queue Jul 9, 2026
Merged via the queue into main with commit 48bd9ba Jul 9, 2026
25 checks passed
@pietern pietern deleted the investigate-timing branch July 9, 2026 13:49
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 48bd9ba

Run: 29022915653

Env ❌​FAIL 🟨​KNOWN 🔄​flaky 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
💚​ aws linux 4 4 529 1006 49:06
🔄​ aws windows 4 4 4 482 1019 56:39
❌​ aws-ucws linux 9 1 4 4 2 989 817 111:31
❌​ aws-ucws windows 9 1 4 5 2 930 835 134:33
💚​ azure linux 4 4 523 1007 43:13
🔄​ azure windows 4 4 4 476 1020 60:22
🔄​ azure-ucws linux 6 5 2 891 852 85:04
🔄​ azure-ucws windows 6 5 2 833 870 102:22
💚​ gcp linux 4 4 514 1012 45:11
🔄​ gcp windows 3 3 4 469 1025 56:39
27 interesting tests: 12 flaky, 9 FAIL, 3 RECOVERED, 2 SKIP, 1 KNOWN
Test Name aws linux aws windows aws-ucws linux aws-ucws windows azure linux azure windows azure-ucws linux azure-ucws windows gcp linux gcp windows
🟨​ TestAccept 💚​R 💚​R 🟨​K 🟨​K 💚​R 💚​R 💚​R 🔄​f 💚​R 🔄​f
🔄​ TestAccept/bundle/generate/pipeline_and_deploy ✅​p 🔄​f 🔄​f 🔄​f ✅​p 🔄​f 🔄​f 🔄​f ✅​p 🔄​f
🔄​ TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct ✅​p 🔄​f 🔄​f 🔄​f ✅​p 🔄​f 🔄​f 🔄​f ✅​p 🔄​f
🔄​ TestAccept/bundle/generate/pipeline_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform ✅​p ✅​p ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p ✅​p
🔄​ TestAccept/bundle/generate/python_job_and_deploy ✅​p 🔄​f ✅​p ✅​p ✅​p 🔄​f 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=direct ✅​p ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f 🔄​f ✅​p ✅​p
🔄​ TestAccept/bundle/generate/python_job_and_deploy/DATABRICKS_BUNDLE_ENGINE=terraform ✅​p 🔄​f ✅​p ✅​p ✅​p 🔄​f ✅​p 🔄​f ✅​p ✅​p
🔄​ TestAccept/bundle/invariant/no_drift 🙈​S 🙈​S 🔄​f 💚​R 🙈​S 🙈​S 💚​R 💚​R 🙈​S 🙈​S
🔄​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= 🔄​f ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/dashboards/change-name ✅​p ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/dashboards/change-name/DATABRICKS_BUNDLE_ENGINE=terraform ✅​p ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/postgres_endpoints/basic 🙈​s 🙈​s ❌​F ❌​F 🙈​s 🙈​s 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_endpoints/basic/DATABRICKS_BUNDLE_ENGINE=direct ❌​F ❌​F
❌​ TestAccept/bundle/resources/postgres_endpoints/basic/DATABRICKS_BUNDLE_ENGINE=terraform ❌​F ❌​F
❌​ TestAccept/bundle/resources/postgres_endpoints/replace_existing 🙈​s 🙈​s ❌​F ❌​F 🙈​s 🙈​s 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_endpoints/replace_existing/DATABRICKS_BUNDLE_ENGINE=direct ❌​F ❌​F
❌​ TestAccept/bundle/resources/postgres_endpoints/replace_existing/DATABRICKS_BUNDLE_ENGINE=terraform ❌​F ❌​F
❌​ TestAccept/bundle/resources/postgres_endpoints/update_autoscaling 🙈​s 🙈​s ❌​F ❌​F 🙈​s 🙈​s 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/postgres_endpoints/update_autoscaling/DATABRICKS_BUNDLE_ENGINE=direct ❌​F ❌​F
❌​ TestAccept/bundle/resources/postgres_endpoints/update_autoscaling/DATABRICKS_BUNDLE_ENGINE=terraform ❌​F ❌​F
🔄​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name 🙈​S 🙈​S 💚​R 💚​R 🙈​S 🙈​S 🔄​f 💚​R 🙈​S 🙈​S
🔄​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name/DATABRICKS_BUNDLE_ENGINE=direct ✅​p ✅​p 🔄​f ✅​p
🙈​ TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/ssh/connection 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
💚​ TestFetchRepositoryInfoAPI_FromRepo 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo/root 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo/subdir 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
Top 50 slowest tests (at least 2 minutes):
duration env testname
22:05 aws linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
18:55 gcp windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:57 gcp linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:24 gcp linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
12:18 gcp linux TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
11:39 aws windows TestAccept/bundle/resources/clusters/deploy/data_security_mode/DATABRICKS_BUNDLE_ENGINE=direct
11:12 gcp linux TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
10:53 aws-ucws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
10:12 aws-ucws windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
9:37 azure-ucws linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:13 azure linux TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
9:10 gcp windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:04 azure linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:56 azure-ucws linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
8:56 azure windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
8:18 aws-ucws windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:15 aws windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:47 azure windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:41 azure-ucws windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:27 gcp windows TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
7:25 aws-ucws linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:21 aws linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:16 azure-ucws windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:12 aws windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
7:11 aws linux TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
7:08 azure windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:08 aws linux TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
7:02 aws linux TestAccept/bundle/resources/clusters/deploy/data_security_mode/DATABRICKS_BUNDLE_ENGINE=direct
6:50 azure windows TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct
6:50 aws linux TestAccept/bundle/resources/clusters/resize-terminated-fallback/DATABRICKS_BUNDLE_ENGINE=direct
6:49 azure-ucws linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
6:44 azure windows TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
6:37 aws-ucws windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
6:33 aws windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
6:07 aws-ucws windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
6:03 azure linux TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform
5:58 azure windows TestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct
5:56 aws-ucws linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
5:46 aws-ucws linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct
5:46 aws-ucws windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
5:45 azure linux TestAccept/bundle/resources/clusters/resize-terminated-fallback/DATABRICKS_BUNDLE_ENGINE=direct
5:45 aws-ucws linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:38 azure linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:21 aws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
5:04 gcp windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
5:01 aws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:50 aws windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:49 gcp windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
4:47 azure windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
4:47 aws-ucws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct

RCoff pushed a commit to RCoff/databricks-cli that referenced this pull request Jul 10, 2026
)

Follow-up to the `GOOSOnPR` filter (databricks#5876): skip more bundle subtrees on
Windows/macOS PR runs. All still run on Linux for PRs and on every OS on
push to `main`.

Each subtree was verified to have no OS-specific behavior under test
(not just no OS markers — `MSYS_NO_PATHCONV`, leading `//`, and
CRLF-normalizing `sed` are portability scaffolding that make output
OS-identical, not evidence of OS sensitivity):

- `bundle/deployment` — bind/unbind and deploy/destroy logic
- `bundle/validate` — config validation and diagnostics
- `bundle/variables` — variable resolution and interpolation
- `bundle/telemetry` — telemetry payload assertions (output is
OS-normalized)
- `templates/default-python/combinations` — the notebook/DLT/python
matrix; the OS-specific wheel build stays covered by
`templates/default-python/integration_classic`
- `bundle/integration_whl` — the OS surface is the wheel build (venv
layout, `python3` alias), identical across variants; keep a symmetric
set covering both cluster modes × base/dynamic (`serverless`,
`serverless_dynamic_version`, `interactive_cluster`,
`interactive_cluster_dynamic_version`) and skip the rest

Also documents `GOOSOnPR` in `.agent/rules/testing.md`: tests run on
every OS by default, some directories recursively opt out for speed, and
an OS-specific test sitting under such a directory should override the
inherited skip.

This pull request and its description were written by Isaac.
radakam added a commit that referenced this pull request Jul 13, 2026
Pick up GOOSOnPR fields added by the acceptance harness on main (#5876,
#5879), which restrict OS-independent bundle tests to Linux on PRs.
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