ci: add Windows quality and packaging gates
Teach ESLint the classic renderer and mixed CommonJS harness runtimes while retaining actionable rules. Add deterministic credential, lockfile, release-manifest, and lint contracts plus equivalent GitHub and Gitea Windows pipelines. Gate clean installs, focused offline smoke coverage, builds, packaged launches, and silent installer verification without enabling authenticated network tests.
This commit is contained in:
@@ -62,7 +62,7 @@ export function parseFfprobeJson(rawJson: string): ProbeResult {
|
||||
try {
|
||||
parsed = JSON.parse(rawJson) as FfprobeJson;
|
||||
} catch (e) {
|
||||
throw new Error(`integrity-check: ffprobe JSON parse failed: ${e instanceof Error ? e.message : String(e)}`);
|
||||
throw new Error(`integrity-check: ffprobe JSON parse failed: ${e instanceof Error ? e.message : String(e)}`, { cause: e });
|
||||
}
|
||||
|
||||
const streams: ProbeStream[] = (parsed.streams ?? []).map((s, idx) => ({
|
||||
|
||||
@@ -197,8 +197,7 @@ export class ManagedToolInstaller {
|
||||
const existing = this.inFlight.get(manifest.id);
|
||||
if (existing) return existing;
|
||||
|
||||
let operation!: Promise<ManagedToolInstallResult>;
|
||||
operation = Promise.resolve()
|
||||
const operation = Promise.resolve()
|
||||
.then(() => this.installOnce(manifest))
|
||||
.catch(async (error: unknown) => await this.failure(manifest, 'download-failed', this.errorText(error), []))
|
||||
.finally(() => {
|
||||
|
||||
@@ -22,7 +22,7 @@ describe('resolveSecretInputUpdate', () => {
|
||||
const revision = createSecretInputRevision();
|
||||
const requestRevision = revision.current();
|
||||
let resolveSave: (() => void) | undefined;
|
||||
let visibleValue = 'first-secret';
|
||||
let visibleValue: string;
|
||||
const save = new Promise<void>((resolve) => {
|
||||
resolveSave = resolve;
|
||||
}).then(() => {
|
||||
|
||||
@@ -107,7 +107,7 @@ export async function fetchTopClips(opts: FetchTopClipsOptions): Promise<TopClip
|
||||
try {
|
||||
parsed = JSON.parse(text) as HelixClipsResponse;
|
||||
} catch (e) {
|
||||
throw new Error(`top-clips-crawler: parse failed: ${e instanceof Error ? e.message : String(e)}`);
|
||||
throw new Error(`top-clips-crawler: parse failed: ${e instanceof Error ? e.message : String(e)}`, { cause: e });
|
||||
}
|
||||
|
||||
const rows = parsed.data ?? [];
|
||||
|
||||
Reference in New Issue
Block a user