From df47d894ab43f52c571eda115c229da481f1926e Mon Sep 17 00:00:00 2001 From: Zach Vorhies Date: Sat, 17 Oct 2026 22:01:05 -0700 Subject: [PATCH] test(ci): publish lease ready marker atomically (#647) Local-Gate: v1 tree=845f2fb4e597acad6e8c163c4c186617e4db54e0 secs=320 lanes=rust:run,tests:run Ci-Attestation: {"at":1792299985,"gate":"rust/all/fmt","host":"linux-x86_64","key":"97550911dc57dcc03b39b671673fdff2719cc4dfdd012d02a70ab08bf88759da","lane":"rust","parents":["e08bfcac1eaf3b690b5a64266e263f64068164c5"],"secs":320,"stamp":"e83c81ca3b840fc45f98614915b492a2","tree":"845f2fb4e597acad6e8c163c4c186617e4db54e0","v":1,"via":"run"} Ci-Attestation: {"at":1792299985,"gate":"rust/all/boundary","host":"linux-x86_64","key":"97550911dc57dcc03b39b671673fdff2719cc4dfdd012d02a70ab08bf88759da","lane":"rust","parents":["e08bfcac1eaf3b690b5a64266e263f64068164c5"],"secs":320,"stamp":"7844091df0583a22c438cac60a7f750c","tree":"845f2fb4e597acad6e8c163c4c186617e4db54e0","v":1,"via":"run"} Ci-Attestation: {"at":1792299985,"gate":"rust/x86_64-unknown-linux-gnu/clippy","host":"linux-x86_64","key":"97550911dc57dcc03b39b671673fdff2719cc4dfdd012d02a70ab08bf88759da","lane":"rust","parents":["e08bfcac1eaf3b690b5a64266e263f64068164c5"],"secs":320,"stamp":"b34853c84dc4d4928bd90be81b971ee7","tree":"845f2fb4e597acad6e8c163c4c186617e4db54e0","v":1,"via":"run"} Ci-Attestation: {"at":1792299985,"gate":"rust/x86_64-unknown-linux-gnu/test","host":"linux-x86_64","key":"97550911dc57dcc03b39b671673fdff2719cc4dfdd012d02a70ab08bf88759da","lane":"rust","parents":["e08bfcac1eaf3b690b5a64266e263f64068164c5"],"secs":320,"stamp":"7cc16a6738b4e714934dfd40cc3ba63d","tree":"845f2fb4e597acad6e8c163c4c186617e4db54e0","v":1,"via":"run"} Ci-Attestation: {"at":1792299985,"gate":"python/all/static","host":"linux-x86_64","key":"96dca758f37509c14808e0812f6fca31b5d530542ed11b5e1c93b03392a9a42a","lane":"tests","parents":["e08bfcac1eaf3b690b5a64266e263f64068164c5"],"secs":306,"stamp":"d2e7c2167bdd85c7304f16c9cdf11234","tree":"845f2fb4e597acad6e8c163c4c186617e4db54e0","v":1,"via":"run"} Ci-Attestation: {"at":1792299985,"gate":"general/all/ci-policy","host":"linux-x86_64","key":"96dca758f37509c14808e0812f6fca31b5d530542ed11b5e1c93b03392a9a42a","lane":"tests","parents":["e08bfcac1eaf3b690b5a64266e263f64068164c5"],"secs":306,"stamp":"7a32e5cf51011d1866468ccd79c491a3","tree":"845f2fb4e597acad6e8c163c4c186617e4db54e0","v":1,"via":"run"} Ci-Attestation: {"at":1792299985,"gate":"python/x86_64-unknown-linux-gnu/test","host":"linux-x86_64","key":"96dca758f37509c14808e0812f6fca31b5d530542ed11b5e1c93b03392a9a42a","lane":"tests","parents":["e08bfcac1eaf3b690b5a64266e263f64068164c5"],"secs":306,"stamp":"dfa539e4bf1e35987646cb7b1d496ff7","tree":"845f2fb4e597acad6e8c163c4c186617e4db54e0","v":1,"via":"run"} --- crates/bosn-service/src/ci/engine/legacy_lease.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/bosn-service/src/ci/engine/legacy_lease.rs b/crates/bosn-service/src/ci/engine/legacy_lease.rs index e0f726a2..32c78062 100644 --- a/crates/bosn-service/src/ci/engine/legacy_lease.rs +++ b/crates/bosn-service/src/ci/engine/legacy_lease.rs @@ -125,7 +125,8 @@ with tempfile.TemporaryDirectory() as directory: work = pathlib.Path(directory) / 'work' binary = work / 'bin' / 'act' binary.parent.mkdir(parents=True) - binary.write_text('#!/usr/bin/env python3\nimport json,os,pathlib,sys,time\nos.fstat(8)\npathlib.Path(os.environ["BOSN_LEASE_READY"]).write_text(json.dumps(sys.argv[1:]))\ntime.sleep(60)\n') + # Ready markers are parsed after exists(); publish complete bytes by rename. + binary.write_text('#!/usr/bin/env python3\nimport json,os,pathlib,sys,time\nos.fstat(8)\nready=pathlib.Path(os.environ["BOSN_LEASE_READY"])\ntemporary=ready.with_name(ready.name+".tmp")\ntemporary.write_text(json.dumps(sys.argv[1:]))\nos.replace(temporary,ready)\ntime.sleep(60)\n') binary.chmod(0o700) command = [value.replace(sys.argv[3], str(cache)).replace(sys.argv[4], str(work)) for value in json.loads(sys.argv[1])]