From 8a4ac81a2bb6d5c3b1b96d963a4546887331cb2a Mon Sep 17 00:00:00 2001 From: Tobbe Lundberg Date: Thu, 28 Dec 2023 16:15:34 +0100 Subject: [PATCH 1/3] chore(ci): retry detectChanges on error, and await result --- .github/actions/detect-changes/detectChanges.mjs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/actions/detect-changes/detectChanges.mjs b/.github/actions/detect-changes/detectChanges.mjs index 41f012e1e076..8a13b139b557 100644 --- a/.github/actions/detect-changes/detectChanges.mjs +++ b/.github/actions/detect-changes/detectChanges.mjs @@ -5,7 +5,7 @@ import { hasCodeChanges } from './cases/code_changes.mjs' import { rscChanged } from './cases/rsc.mjs' import { ssrChanged } from './cases/ssr.mjs' -const getPrNumber = (githubRef) => { +const getPrNumber = () => { // Example GITHUB_REF refs/pull/9544/merge const result = /refs\/pull\/(\d+)\/merge/g.exec(process.env.GITHUB_REF) @@ -48,7 +48,7 @@ async function getChangedFiles(page = 1, retries = 0) { const githubToken = process.env.GITHUB_TOKEN const url = `https://api.github.com/repos/redwoodjs/redwood/pulls/${prNumber}/files?per_page=100&page=${page}` let resp - let files + let files = [] try { resp = await fetch(url, { @@ -71,7 +71,7 @@ async function getChangedFiles(page = 1, retries = 0) { return [] } else { await new Promise((resolve) => setTimeout(resolve, 3000)) - getChangedFiles(page, ++retries) + files = await getChangedFiles(page, ++retries) } } From 205aa6f09abab1ef86d54d8128069e57de44fa97 Mon Sep 17 00:00:00 2001 From: Tobbe Lundberg Date: Thu, 28 Dec 2023 16:17:45 +0100 Subject: [PATCH 2/3] backoff --- .github/actions/detect-changes/detectChanges.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/detect-changes/detectChanges.mjs b/.github/actions/detect-changes/detectChanges.mjs index 8a13b139b557..3ecdfee4fb42 100644 --- a/.github/actions/detect-changes/detectChanges.mjs +++ b/.github/actions/detect-changes/detectChanges.mjs @@ -70,7 +70,7 @@ async function getChangedFiles(page = 1, retries = 0) { return [] } else { - await new Promise((resolve) => setTimeout(resolve, 3000)) + await new Promise((resolve) => setTimeout(resolve, 3000 * retries)) files = await getChangedFiles(page, ++retries) } } From 60befc1603f9bdd6930136b047019c1396e188fd Mon Sep 17 00:00:00 2001 From: Tobbe Lundberg Date: Thu, 28 Dec 2023 16:20:44 +0100 Subject: [PATCH 3/3] console logs --- .github/actions/detect-changes/detectChanges.mjs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/actions/detect-changes/detectChanges.mjs b/.github/actions/detect-changes/detectChanges.mjs index 3ecdfee4fb42..a7119100199d 100644 --- a/.github/actions/detect-changes/detectChanges.mjs +++ b/.github/actions/detect-changes/detectChanges.mjs @@ -59,6 +59,12 @@ async function getChangedFiles(page = 1, retries = 0) { }, }) + if (!resp.ok) { + console.log() + console.error('Response not ok') + console.log('resp', resp) + } + const json = await resp.json() files = json.map((file) => file.filename) || [] } catch (e) { @@ -103,8 +109,8 @@ async function main() { if (changedFiles.length === 0) { console.log( - 'No changed files found. Something must have gone wrong. Fall back to ' + - 'running all tests.' + 'No changed files found. Something must have gone wrong. Falling back ' + + 'to running all tests.' ) core.setOutput('onlydocs', false) core.setOutput('rsc', true)