fix(cli): keep script settings on push and repair the up-to-date check (#10741)

* fix(cli): keep script retention, debounce and cache settings on push

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(cli): surface the create response when the fixture fails

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(cli): drop debounce settings the CI build refuses to accept

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* repair the script push up-to-date comparison (#10743)

* test: settle the backlog before the capped audit-export drain (#10737)

* test: settle the backlog before the capped audit-export drain

* chore: update ee-repo-ref to bd4de74eb37b32a2b6c7c69f6dedac031ef8436b

This commit updates the EE repository reference after PR #730 was merged in windmill-ee-private.

Previous ee-repo-ref: b5a5f9114df26088cfe976d91f10e55ba8bfcaa6

New ee-repo-ref: bd4de74eb37b32a2b6c7c69f6dedac031ef8436b

Automated by sync-ee-ref workflow.

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>

* fix(cli): repair the script push up-to-date comparison

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(cli): drain dependency jobs and pin a non-1 priority skip

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(cli): describe the priority fixture without the old comparison

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

* refactor(cli): read cache_ignore_s3_path off the typed response

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(cli): stop redeploying bunnative scripts on every push

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: windmill-internal-app[bot] <windmill-internal-app[bot]@users.noreply.github.com>
This commit is contained in:
Ruben Fiszel
2026-08-18 12:26:41 +02:00
committed by GitHub
co-authored by Claude Opus 5 windmill-internal-app[bot]
parent 7b17e358b3
commit ef4dc46d4b
4 changed files with 298 additions and 1 deletions
+24 -1
View File
@@ -592,6 +592,7 @@ export async function handleFile(
ws_error_handler_muted: typed?.ws_error_handler_muted,
dedicated_worker: typed?.dedicated_worker,
cache_ttl: typed?.cache_ttl,
cache_ignore_s3_path: typed?.cache_ignore_s3_path,
concurrency_time_window_s: normConcurrencyTimeWindowS,
concurrent_limit: normConcurrentLimit,
deployment_message: message,
@@ -602,8 +603,14 @@ export async function handleFile(
concurrency_key: typed?.concurrency_key,
debounce_key: typed?.debounce_key,
debounce_delay_s: typed?.debounce_delay_s,
debounce_args_to_accumulate: typed?.debounce_args_to_accumulate,
max_total_debouncing_time: typed?.max_total_debouncing_time,
max_total_debounces_amount: typed?.max_total_debounces_amount,
codebase: await codebase?.getDigest(forceTar),
timeout: nonePositiveInt(typed?.timeout),
// 0 means "delete immediately after completion", so it must survive as 0
// rather than being folded into "unset" the way the positive-only settings are.
delete_after_secs: typed?.delete_after_secs,
on_behalf_of_email: typed?.on_behalf_of_email,
envs: typed?.envs,
modules: modules,
@@ -635,6 +642,12 @@ export async function handleFile(
(typed.description === remote.description &&
typed.summary === remote.summary &&
typed.kind == remote.kind &&
// A `.ts` file changes language when defaultTs flips, content untouched.
// bun and bunnative share that extension, so the inferred language is always
// bun; the server derives bunnative back from the `//native` annotation in
// the content, which is compared above.
language ==
(remote.language === "bunnative" ? "bun" : remote.language) &&
!remote.archived &&
(Array.isArray(remote?.lock)
? remote?.lock?.join("\n")
@@ -646,6 +659,8 @@ export async function handleFile(
remote.ws_error_handler_muted &&
typed.dedicated_worker == remote.dedicated_worker &&
typed.cache_ttl == remote.cache_ttl &&
Boolean(typed.cache_ignore_s3_path) ==
Boolean(remote.cache_ignore_s3_path) &&
normConcurrencyTimeWindowS ==
normalizeConcurrency(
remote.concurrent_limit,
@@ -659,15 +674,23 @@ export async function handleFile(
Boolean(remote.visible_to_runner_only) &&
Boolean(typed.has_preprocessor) ==
Boolean(remote.has_preprocessor) &&
typed.priority == Boolean(remote.priority) &&
typed.priority == remote.priority &&
nonePositiveInt(typed.timeout) == nonePositiveInt(remote.timeout) &&
typed.delete_after_secs == remote.delete_after_secs &&
//@ts-ignore
typed.concurrency_key == remote["concurrency_key"] &&
typed.debounce_key == remote["debounce_key"] &&
typed.debounce_delay_s == remote["debounce_delay_s"] &&
deepEqual(
typed.debounce_args_to_accumulate ?? null,
remote.debounce_args_to_accumulate ?? null
) &&
typed.max_total_debouncing_time == remote.max_total_debouncing_time &&
typed.max_total_debounces_amount == remote.max_total_debounces_amount &&
typed.codebase == remote.codebase &&
(hasOnBehalfOf ? true : typed.on_behalf_of_email == remote.on_behalf_of_email) &&
deepEqual(typed.envs, remote.envs) &&
deepEqual(typed.labels ?? null, remote.labels ?? null) &&
deepEqual(modules ?? null, remote.modules ?? null))
) {
log.info(colors.green(`Script ${remotePath} is up to date`));