diff --git a/.bumpy/fix-wrangler-keep-vars-flag.md b/.bumpy/fix-wrangler-keep-vars-flag.md new file mode 100644 index 00000000..1dfca52c --- /dev/null +++ b/.bumpy/fix-wrangler-keep-vars-flag.md @@ -0,0 +1,5 @@ +--- +"@varlock/cloudflare-integration": patch +--- + +Fix varlock-wrangler: skip unsupported --keep-vars flag for `versions upload`, and propagate wrangler exit code correctly for deploy/types commands. diff --git a/packages/integrations/cloudflare/src/varlock-wrangler.ts b/packages/integrations/cloudflare/src/varlock-wrangler.ts index 43cc4ba1..0013f57b 100644 --- a/packages/integrations/cloudflare/src/varlock-wrangler.ts +++ b/packages/integrations/cloudflare/src/varlock-wrangler.ts @@ -238,9 +238,13 @@ function formatEnvFileContent(graph: ReturnType) { // --- command detection --- +function isVersionsUploadCommand(args: Array) { + return args[0] === 'versions' && args[1] === 'upload'; +} + function isDeployCommand(args: Array) { if (args[0] === 'deploy') return true; - if (args[0] === 'versions' && args[1] === 'upload') return true; + if (isVersionsUploadCommand(args)) return true; return false; } @@ -314,13 +318,16 @@ async function handleDeploy(args: Array) { let exitCode = process.exitCode ?? 0; try { debug('deploy: spawning wrangler'); - exitCode = await spawnWrangler([...args, ...varFlags, '--secrets-file', tmp.filePath, '--keep-vars=false']); + const wranglerArgs = [...args, ...varFlags, '--secrets-file', tmp.filePath]; + if (!isVersionsUploadCommand(args)) wranglerArgs.push('--keep-vars=false'); + exitCode = await spawnWrangler(wranglerArgs); debug('deploy: wrangler exited with code', exitCode); } finally { debug('deploy: cleaning up'); handle.stop(); tmp.cleanup(); } + process.exitCode = exitCode; } async function handleTypes(args: Array) { @@ -356,6 +363,7 @@ async function handleTypes(args: Array) { handle.stop(); tmp.cleanup(); } + process.exitCode = exitCode; } async function handleDev(args: Array) {