From 7fdcaea2fbe620b44a5ffd87717307ad01c9f37e Mon Sep 17 00:00:00 2001 From: Julian Gruber Date: Wed, 24 Jul 2024 16:13:53 +0200 Subject: [PATCH] disable w3s cache on failed attempt --- lib/modules.js | 10 +++++++--- lib/zinnia.js | 5 +++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/modules.js b/lib/modules.js index 8f308ece..de894f34 100644 --- a/lib/modules.js +++ b/lib/modules.js @@ -2,7 +2,7 @@ import os from 'node:os' import assert from 'node:assert' import { join } from 'node:path' import { mkdir, chmod, rm, readFile, writeFile, stat } from 'node:fs/promises' -import { fetch } from 'undici' +import { fetch, Headers } from 'undici' import { pipeline } from 'node:stream/promises' import unzip from 'unzip-stream' import { createWriteStream } from 'node:fs' @@ -131,7 +131,8 @@ export async function updateSourceFiles ({ module, ipnsKey, moduleVersionsDir, - moduleSourcesDir + moduleSourcesDir, + noCache }) { await mkdir(moduleSourcesDir, { recursive: true }) const outDir = join(moduleSourcesDir, module) @@ -159,8 +160,11 @@ export async function updateSourceFiles ({ try { const url = `https://${cid}.ipfs.${gateway}?format=car` console.error(`[${module}] ⇣ downloading source files via ${url}`) + const headers = new Headers() + if (noCache) headers.append('Cache-Control', 'no-cache') res = await fetch(url, { - signal: AbortSignal.timeout(10_000) + signal: AbortSignal.timeout(10_000), + headers }) if (res.status >= 300) { diff --git a/lib/zinnia.js b/lib/zinnia.js index 790ac301..57c46343 100644 --- a/lib/zinnia.js +++ b/lib/zinnia.js @@ -79,11 +79,12 @@ const updateAllSourceFiles = async ({ .filter(({ module }) => matchesModuleFilter(module)) .map(({ module, ipnsKey }) => pRetry( - () => updateSourceFiles({ + attemptNumber => updateSourceFiles({ module, ipnsKey, moduleVersionsDir, - moduleSourcesDir + moduleSourcesDir, + noCache: attemptNumber > 1 }), { signal,