дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 03:05:40 +02:00
CI / Changes (push) Successful in 1s
Language smoke / Language smoke (go) (push) Failing after 6s
Language smoke / Language smoke (kotlin) (push) Failing after 6s
Language smoke / Language smoke (java) (push) Failing after 7s
Language smoke / Language smoke (python) (push) Failing after 3s
Language smoke / Language smoke (typescript) (push) Failing after 5s
Language smoke / Language smoke (rust) (push) Failing after 5s
CI / Plugins (SDK, official, fixtures) (push) Successful in 3m9s
CI / Cargo deny (push) Successful in 52s
CI / Remote server (linux musl) (push) Successful in 5m57s
CI / E2E (push) Failing after 15m55s
CI / Frontend (push) Successful in 25m38s
CI / Rust (ubuntu-22.04) (push) Failing after 46m4s
CI / Rust (macos-latest) (push) Canceled after 0s
CI / Rust (windows-latest) (push) Canceled after 0s
A run target can be a Docker image or a Compose service: the configuration runs as a local docker run --rm / docker compose run --rm with the project bind-mounted, so the console, PTY, stdin, Stop and test parsers work unchanged. Only daemons on this machine are accepted; on Linux the container runs as the project folder's owner; Stop runs docker stop with the same docker CLI. Debugging, coverage and profiling stay on this machine. Refs #1083 (step A1). Co-authored-by: andreabasile <[email protected]>
35 рядки
1.2 KiB
TypeScript
35 рядки
1.2 KiB
TypeScript
/**
|
|
* Run executors contributed by other features (Run with Coverage, Profile):
|
|
* the executor plans what to launch, the run shows in the Run tool window like
|
|
* any other, and the executor hears when the process exits.
|
|
*/
|
|
import type { RunConfig } from "@/platform/ipc";
|
|
import { notifications, useRunExecutors, type ExecutorLaunch } from "@/workbench/contributions";
|
|
import { containerExecutorBlocked } from "./remote";
|
|
import { prepareLaunch, startRun } from "./store";
|
|
|
|
export async function runWithExecutor(config: RunConfig, executorId: string): Promise<void> {
|
|
const executor = useRunExecutors.getState().executors.get(executorId);
|
|
if (!executor) return;
|
|
if (containerExecutorBlocked(config)) return;
|
|
if (!(await prepareLaunch(config))) return;
|
|
let plan: ExecutorLaunch | null;
|
|
try {
|
|
plan = await executor.prepare(config);
|
|
} catch (e) {
|
|
notifications().notify({
|
|
group: "run",
|
|
level: "error",
|
|
title: `Cannot run '${config.name}'`,
|
|
body: e instanceof Error ? e.message : String(e),
|
|
});
|
|
return;
|
|
}
|
|
if (!plan) return;
|
|
const { launch, finished } = plan;
|
|
await startRun(config, undefined, undefined, {
|
|
launch,
|
|
onExit: (exitCode, stopped) => finished({ exitCode, stopped }),
|
|
});
|
|
}
|