diff --git a/scripts/src/platform-infra-pipelines-as-code-remote.sh b/scripts/src/platform-infra-pipelines-as-code-remote.sh index 7e2166c8..6d3ef98c 100644 --- a/scripts/src/platform-infra-pipelines-as-code-remote.sh +++ b/scripts/src/platform-infra-pipelines-as-code-remote.sh @@ -936,9 +936,17 @@ cicd_diagnostics() { printf '%s' "${4:-{}}" >"$runtime_file" probe_env=$(node - "$params_file" "$pipelines_file" "$artifact_file" <<'NODE' const fs = require('node:fs'); -const params = JSON.parse(fs.readFileSync(process.argv[2], 'utf8') || '{}'); -const pipelines = JSON.parse(fs.readFileSync(process.argv[3], 'utf8') || '[]'); -const artifact = JSON.parse(fs.readFileSync(process.argv[4], 'utf8') || '{}'); +function parseLoose(path, fallback) { + const input = fs.readFileSync(path, 'utf8').trim(); + if (!input) return fallback; + for (let end = input.length; end > 0; end -= 1) { + try { return JSON.parse(input.slice(0, end)); } catch {} + } + return fallback; +} +const params = parseLoose(process.argv[2], {}); +const pipelines = parseLoose(process.argv[3], []); +const artifact = parseLoose(process.argv[4], {}); const latest = Array.isArray(pipelines) ? pipelines[0] || {} : {}; const sourceCommit = latest.sourceCommit || null; const runtimeSourceCommit = artifact.runtimeSourceCommit || sourceCommit;