diff --git a/action-src/main.ts b/action-src/main.ts index 27c27b2a4..12c768f22 100755 --- a/action-src/main.ts +++ b/action-src/main.ts @@ -96,6 +96,7 @@ async function run() { const untraced = getInput('untraced'); const workingDir = getInput('workingDir') || getInput('workingDirectory'); const zip = getInput('zip'); + const junitReport = getInput('junitReport'); process.env.CHROMATIC_ACTION = 'true'; process.env.CHROMATIC_SHA = sha; @@ -135,6 +136,7 @@ async function run() { traceChanged: maybe(traceChanged), untraced: maybe(untraced), zip: maybe(zip, false), + junitReport: maybe(junitReport, false), }); Object.entries(output).forEach(([key, value]) => setOutput(key, String(value))); diff --git a/action.yml b/action.yml index 96d7f785c..e913499d5 100755 --- a/action.yml +++ b/action.yml @@ -93,6 +93,9 @@ inputs: zip: description: 'Publish your Storybook to Chromatic as a single zip file instead of individual content files' required: false + junitReport: + description: 'Write build results to a JUnit XML file.' + required: false outputs: code: diff --git a/bin-src/git/findAncestorBuildWithCommit.ts b/bin-src/git/findAncestorBuildWithCommit.ts index 0630543b0..9d8341267 100644 --- a/bin-src/git/findAncestorBuildWithCommit.ts +++ b/bin-src/git/findAncestorBuildWithCommit.ts @@ -51,21 +51,22 @@ export async function findAncestorBuildWithCommit( { client }: Pick, buildNumber: number, { page = 10, limit = 80 } = {} -): Promise { +): Promise { let skip = 0; while (skip < limit) { // eslint-disable-next-line no-await-in-loop - const { app } = (await client.runQuery(AncestorBuildsQuery, { + const { app } = await client.runQuery(AncestorBuildsQuery, { buildNumber, skip, limit: Math.min(page, limit - skip), - })) as AncestorBuildsQueryResult; + }); // eslint-disable-next-line no-await-in-loop const results = await Promise.all( - app.build.ancestorBuilds.map( - async (build) => [build, await commitExists(build.commit)] as const - ) + app.build.ancestorBuilds.map(async (build) => { + const exists = await commitExists(build.commit); + return [build, exists] as const; + }) ); const result = results.find(([build, exists]) => exists);