Skip to content

acc: run cmd/workspace/apps/run-local-node locally - #6172

Merged
radakam merged 1 commit into
mainfrom
acc-run-apps-run-local-node-locally
Aug 7, 2026
Merged

acc: run cmd/workspace/apps/run-local-node locally#6172
radakam merged 1 commit into
mainfrom
acc-run-apps-run-local-node-locally

Conversation

@radakam

@radakam radakam commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Changes

Re-enable acceptance/cmd/workspace/apps/run-local-node, disabled since #4875 for needing NPM registry access. The fixture is now a node:http server run directly with node, so express and the 2m/10m timeouts are gone. Ports come from free_port.py, /shutdown lets the app exit on its own so wait $PID asserts the CLI's exit code, and a failing run reaps the app, proxy and debug ports.

--prepare-environment and --debug stay. The app has no dependencies, so npm install fetches nothing, and app/.npmrc turns off npm's check for a newer npm, which is the one request it still makes on its own; one run covers both halves of NodeApp.PrepareEnvironment and the --entry-point override. The build script is a file rather than an inline command because npm quotes inline arguments differently on Windows and the assertion greps for its exact output. Node debugging is only NODE_OPTIONS=--inspect, so the test asserts the port the CLI reports and that node listens on it.

Why

Only the fixture needed the registry, for express. --prepare-environment is untested anywhere else: the python sibling dropped it for needing PyPI, and neither PrepareEnvironment has a unit test.

@eng-dev-ecosystem-bot

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

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 75b8383

Run: 31109835891

Env 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
💚​ aws linux 4 4 291 1111 6:02
💚​ aws windows 4 4 293 1109 6:32
💚​ azure linux 4 4 290 1111 6:47
💚​ azure windows 4 4 292 1109 5:23
💚​ gcp linux 1 5 291 1111 7:17
💚​ gcp windows 1 5 293 1109 7:11
8 interesting tests: 4 RECOVERED, 4 SKIP
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
🙈​ TestAccept/bundle/invariant/no_drift 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/ssh/connection 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
💚​ TestFetchRepositoryInfoAPI_FromRepo 💚​R 💚​R 💚​R 💚​R 🙈​S 🙈​S
💚​ TestFetchRepositoryInfoAPI_FromRepo/root 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo/subdir 💚​R 💚​R 💚​R 💚​R
Top 3 slowest tests (at least 2 minutes):
duration env testname
5:16 aws windows TestAccept
3:10 gcp windows TestAccept
3:05 azure windows TestAccept

@radakam
radakam force-pushed the acc-run-apps-run-local-locally branch from 7da0161 to e1cf319 Compare August 5, 2026 16:53
Base automatically changed from acc-run-apps-run-local-locally to main August 6, 2026 03:13
@radakam
radakam force-pushed the acc-run-apps-run-local-node-locally branch from 13a315f to 649f5ae Compare August 6, 2026 08:09
The test has been disabled since #4875, which took NPM registry access away from the
runners. It needed the registry only for the app fixture: express, and the
--prepare-environment run that installs it.

The fixture is now a standard-library HTTP server started directly with node, so nothing
is installed at test time. /shutdown answers with Connection: close so server.close() can
complete and the app exits on its own, which lets wait $PID assert that the CLI exited
zero. The app throws when PORT is unset rather than letting listen() pick a random port
and failing fifteen seconds later as a proxy timeout; PORT is read in preference to
DATABRICKS_APP_PORT because it is what Node apps read and what GetBaseEnvVars sets for
that reason, so it covers an alias the python fixture cannot. Ports come from
free_port.py, and the Timeout overrides go away because the run takes a few seconds
rather than 2m.

--prepare-environment comes back with it. The flag had no test left anywhere: the python
sibling dropped it for needing PyPI, and neither PrepareEnvironment has a unit test. npm
install only reaches the registry when there is something to install, so the fixture keeps
an empty dependency list and gains a build script, and a single run covers both halves of
NodeApp.PrepareEnvironment: the install has to succeed for the build script to run at all.
The build script is a file rather than an inline command because npm's shell quotes inline
arguments differently on Windows, and the assertion greps for the exact output. With
nothing to install the one request npm still makes on its own is the check for a newer
npm, which the rejecting proxy blocks, so app/.npmrc turns that check off.

--debug stays too, unlike in the python sibling where it needs debugpy from PyPI: node
debugging is only NODE_OPTIONS=--inspect. The test asserts both the port the CLI reports
and that node listens on it, so --debug-port keeps its coverage. The CLI prints its line
only after the proxy accepts connections, so the curl that reaches the app can beat it and
that grep is retried.

A failed run reaps the app, proxy and debug ports. node binds the inspector port before it
runs app.js, so the debug port is the only handle on an app that died before it listened.
@radakam
radakam force-pushed the acc-run-apps-run-local-node-locally branch from 00640ba to 75b8383 Compare August 6, 2026 14:13
@radakam
radakam marked this pull request as ready for review August 6, 2026 14:25
@radakam
radakam added this pull request to the merge queue Aug 6, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 6, 2026
@radakam
radakam added this pull request to the merge queue Aug 7, 2026
Merged via the queue into main with commit b664bb6 Aug 7, 2026
27 checks passed
@radakam
radakam deleted the acc-run-apps-run-local-node-locally branch August 7, 2026 08:29
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: b664bb6

Run: 31161986983

Env ❌​FAIL 🟨​KNOWN 🔄​flaky 💚​RECOVERED 🙈​SKIP ✅​pass 🙈​skip Time
❌​ aws linux 6 1 5 2 1160 924 148:41
❌​ aws windows 6 1 5 2 1099 943 160:30
🔄​ azure linux 3 4 2 1059 961 118:22
💚​ azure windows 6 2 999 980 132:42
🔄​ gcp linux 4 2 3 1047 965 133:58
💚​ gcp windows 3 3 989 984 152:21
17 interesting tests: 6 FAIL, 4 flaky, 4 RECOVERED, 2 SKIP, 1 KNOWN
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
🟨​ TestAccept 🟨​K 🟨​K 🔄​f 💚​R 💚​R 💚​R
🔄​ TestAccept/bundle/invariant/destroy_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_run.yml.tmpl/READPLAN= ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/invariant/destroy_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=job_run.yml.tmpl/READPLAN=1 ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
💚​ TestAccept/bundle/invariant/no_drift 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions ❌​F ❌​F 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=direct ❌​F ❌​F
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/with_permissions/DATABRICKS_BUNDLE_ENGINE=terraform ❌​F ❌​F
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions ❌​F ❌​F 🙈​s 🙈​s 🙈​s 🙈​s
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=direct ❌​F ❌​F
❌​ TestAccept/bundle/resources/permissions/jobs/destroy_without_mgmtperms/without_permissions/DATABRICKS_BUNDLE_ENGINE=terraform ❌​F ❌​F
🔄​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name 💚​R 💚​R 🔄​f 💚​R 🔄​f 💚​R
🔄​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name/DATABRICKS_BUNDLE_ENGINE=direct ✅​p ✅​p 🔄​f ✅​p 🔄​f ✅​p
🙈​ TestAccept/bundle/resources/vector_search_indexes/recreate/embedding_dimension 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🙈​ TestAccept/ssh/connection 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
💚​ TestFetchRepositoryInfoAPI_FromRepo 💚​R 💚​R 💚​R 💚​R 🙈​S 🙈​S
💚​ TestFetchRepositoryInfoAPI_FromRepo/root 💚​R 💚​R 💚​R 💚​R
💚​ TestFetchRepositoryInfoAPI_FromRepo/subdir 💚​R 💚​R 💚​R 💚​R
Top 50 slowest tests (at least 2 minutes):
duration env testname
14:26 aws linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
14:13 gcp windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
13:15 gcp linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
10:24 gcp windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
9:03 gcp linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:45 aws windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:39 aws linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
8:13 gcp linux TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
8:11 aws linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:41 aws windows TestAccept/bundle/invariant/delete_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
7:37 aws windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:37 gcp windows TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct
7:32 aws linux TestAccept/bundle/invariant/destroy_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
7:20 azure windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
7:11 azure linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
6:35 gcp linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct
6:32 gcp linux TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
6:02 azure linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:57 gcp windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
5:52 gcp windows TestAccept/bundle/resources/apps/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
5:51 aws linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct
5:45 gcp linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
5:40 gcp windows TestAccept/bundle/resources/apps/lifecycle-started-omitted/DATABRICKS_BUNDLE_ENGINE=direct
5:39 gcp windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
5:37 gcp windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
5:34 azure windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct
5:32 gcp linux TestAccept/bundle/resources/apps/lifecycle-started-omitted/DATABRICKS_BUNDLE_ENGINE=direct
5:29 aws windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
5:21 aws linux TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
5:19 azure linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
5:16 gcp linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=terraform
5:15 gcp linux TestAccept/bundle/resources/apps/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct
5:12 gcp linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
5:07 gcp linux TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
5:00 gcp windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=direct
4:56 aws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform
4:48 gcp windows TestAccept/bundle/invariant/delete_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
4:48 gcp windows TestAccept/bundle/resources/apps/inline_config/DATABRICKS_BUNDLE_ENGINE=terraform
4:48 aws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:44 azure windows TestAccept
4:34 aws windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:31 gcp windows TestAccept
4:30 gcp linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:17 azure windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:16 azure linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct
4:07 azure linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct
4:03 aws windows TestAccept/bundle/resources/postgres_roles/basic/DATABRICKS_BUNDLE_ENGINE=terraform
4:02 aws windows TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
3:58 aws linux TestAccept/bundle/resources/postgres_projects/purge_on_delete/DATABRICKS_BUNDLE_ENGINE=direct
3:45 azure windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct

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