ci: repair plugin boundary artifact freshness

This commit is contained in:
Peter Steinberger
2026-04-10 19:25:32 +01:00
parent 925a499d84
commit 2fc3223ed4

View File

@@ -18,6 +18,12 @@ const ROOT_DTS_INPUTS = [
"src/video-generation/types.ts",
"src/types",
];
const ROOT_DTS_OUTPUTS = [
"dist/plugin-sdk/.tsbuildinfo",
"dist/plugin-sdk/src/plugin-sdk/plugin-entry.d.ts",
"dist/plugin-sdk/src/plugin-sdk/provider-auth.d.ts",
"dist/plugin-sdk/src/plugin-sdk/video-generation.d.ts",
];
const PACKAGE_DTS_INPUTS = [
"tsconfig.json",
"packages/plugin-sdk/tsconfig.json",
@@ -27,6 +33,12 @@ const PACKAGE_DTS_INPUTS = [
"src/video-generation/types.ts",
"src/types",
];
const PACKAGE_DTS_OUTPUTS = [
"packages/plugin-sdk/dist/.tsbuildinfo",
"packages/plugin-sdk/dist/src/plugin-sdk/plugin-entry.d.ts",
"packages/plugin-sdk/dist/src/plugin-sdk/provider-auth.d.ts",
"packages/plugin-sdk/dist/src/plugin-sdk/video-generation.d.ts",
];
const ENTRY_SHIMS_INPUTS = [
"scripts/write-plugin-sdk-entry-dts.ts",
"scripts/lib/plugin-sdk-entrypoints.json",
@@ -103,6 +115,17 @@ export function isArtifactSetFresh(params) {
return oldestOutputMtimeMs !== null && oldestOutputMtimeMs >= newestInputMtimeMs;
}
function hasMissingOutput(paths) {
return paths.some((relativePath) => !fs.existsSync(resolve(repoRoot, relativePath)));
}
function removeIncrementalStateForMissingOutput(params) {
if (!hasMissingOutput(params.outputPaths)) {
return;
}
fs.rmSync(resolve(repoRoot, params.tsBuildInfoPath), { force: true });
}
export function createPrefixedOutputWriter(label, target) {
let buffered = "";
const prefix = `[${label}] `;
@@ -218,12 +241,12 @@ export async function main(argv = process.argv.slice(2)) {
const mode = parseMode(argv);
const rootDtsFresh = isArtifactSetFresh({
inputPaths: ROOT_DTS_INPUTS,
outputPaths: ["dist/plugin-sdk/.tsbuildinfo"],
outputPaths: ROOT_DTS_OUTPUTS,
includeFile: isRelevantTypeInput,
});
const packageDtsFresh = isArtifactSetFresh({
inputPaths: PACKAGE_DTS_INPUTS,
outputPaths: ["packages/plugin-sdk/dist/.tsbuildinfo"],
outputPaths: PACKAGE_DTS_OUTPUTS,
includeFile: isRelevantTypeInput,
});
const entryShimsFresh = isArtifactSetFresh({
@@ -238,6 +261,10 @@ export async function main(argv = process.argv.slice(2)) {
const pendingSteps = [];
if (mode === "all") {
if (!rootDtsFresh) {
removeIncrementalStateForMissingOutput({
outputPaths: ROOT_DTS_OUTPUTS,
tsBuildInfoPath: "dist/plugin-sdk/.tsbuildinfo",
});
pendingSteps.push({
label: "plugin-sdk boundary dts",
args: [tscBin, "-p", "tsconfig.plugin-sdk.dts.json"],
@@ -248,6 +275,10 @@ export async function main(argv = process.argv.slice(2)) {
}
}
if (!packageDtsFresh) {
removeIncrementalStateForMissingOutput({
outputPaths: PACKAGE_DTS_OUTPUTS,
tsBuildInfoPath: "packages/plugin-sdk/dist/.tsbuildinfo",
});
pendingSteps.push({
label: "plugin-sdk package boundary dts",
args: [tscBin, "-p", "packages/plugin-sdk/tsconfig.json"],