Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
import { spawnSync } from "node:child_process";
|
|
import { dirname, join } from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { resolveGolangciLintBinary } from "./golangci-lint-tool.mjs";
|
|
import {
|
|
discoverGoModuleRoots,
|
|
selectGoLintModuleRoots
|
|
} from "./run-check-changed-targets.mjs";
|
|
|
|
const scriptDirectory = dirname(fileURLToPath(import.meta.url));
|
|
const workspaceRoot = join(scriptDirectory, "..", "..");
|
|
const sharedConfigPath = join(
|
|
workspaceRoot,
|
|
"services",
|
|
"tuttid",
|
|
".golangci.yml"
|
|
);
|
|
const goModuleRoots = selectGoLintModuleRoots(
|
|
discoverGoModuleRoots({ root: workspaceRoot })
|
|
).map((moduleRoot) => join(workspaceRoot, moduleRoot));
|
|
const args = [
|
|
"run",
|
|
"--config",
|
|
sharedConfigPath,
|
|
"./...",
|
|
...process.argv.slice(2)
|
|
];
|
|
const golangciLintBinary = resolveGolangciLintBinary({ cwd: workspaceRoot });
|
|
|
|
for (const moduleRoot of goModuleRoots) {
|
|
const result = spawnSync(golangciLintBinary, args, {
|
|
cwd: moduleRoot,
|
|
encoding: "utf8",
|
|
stdio: "inherit"
|
|
});
|
|
|
|
if (result.error?.code === "ENOENT") {
|
|
process.stderr.write(
|
|
"golangci-lint is required for `pnpm lint:go`.\nInstall a compatible version and rerun the command, or rely on PR CI for final verification.\n"
|
|
);
|
|
process.exitCode = 1;
|
|
break;
|
|
}
|
|
if (typeof result.status !== "number" || result.status !== 0) {
|
|
process.exitCode = typeof result.status === "number" ? result.status : 1;
|
|
break;
|
|
}
|
|
}
|