nx_site_release_cli_gate_t141.nx source
↩ module page · 26 lines · 2563 B
1// Calls the exact staged executable; no copied publisher main and no public docroot.
2import "nx_site_publish_lib.nx"
3import "nx_tool_run.nx"
4import "nx_gate_verdict.nx"
5func cl_eq(path: *u8,sha: *u8,size: *u8) -> i64 {let p: *i64=sys_mmap(16) as *i64;let rc: i64=rm_artifact(path,size,sha,p);if rc==0{sys_munmap(p[0] as *u8,p[1]+1)};sys_munmap(p as *u8,16);return rc==0}
6func main(argc: i64,argv: *i64) -> i64 {
7 if argc!=3{return 2};let timeout: i64=pb_sized_bytes(argv[2] as *u8);if timeout<0{return 2}
8 if cl_eq(argv[1] as *u8,"043433c22bf7baedd882641b93ee776748288dbda0cc6b9b0469bd5b18ce6d26","261184")!=1{return 3}
9 let cwd: *u8="/tmp/site-release-gate-t141-reviewed"
10 if sys_chdir(cwd)!=0{return 3}
11 let pass: *i64=gv_ctr();let out: *u8=sys_mmap(PB_CONFCAP);let len: *i64=sys_mmap(8) as *i64
12 let av: *i64=sys_mmap(5*8) as *i64;av[0]=argv[1];av[1]="release-manifest" as *u8 as i64;av[2]="release.json" as *u8 as i64
13 av[3]="be7950e1b2dd22d4c08ceda993a5cd85bae54ae9d4a4b356c0fbf4576c5d5a62" as *u8 as i64;av[4]=0
14 let rc: i64=tr_run_capture_cwd(argv[1] as *u8,av,out,PB_CONFCAP,len,timeout,cwd)
15 if len[0]<=0||len[0]>=PB_CONFCAP{return 4};if fsx_write("staged-cli-retry-output.txt",out,len[0])!=len[0]{return 4}
16 gv_check("actual-staged-cli-idempotent-release",rc==0&&fsx_find(out,len[0],"published-served-review-pending")>=0,pass)
17 gv_check("actual-staged-cli-retains-consumer",cl_eq("sites/gatesite/beta/beach.html","48a8e777a292e615c07fc5d3eeca147193ae1eac4fb72a574c1f8ae262d9352d","1147240"),pass)
18 gv_check("actual-staged-cli-retains-predecessor",cl_eq("sites/gatesite/beta/beach.html.prev","349e55ad736edabebbda30e201a38550d54a8b879fad511fc74724e86bd5953c","1147239"),pass)
19 let bad: *u8="{\"schema\":\"site-release/v1\"}";let h: *u8=sys_mmap(PB_SHA_HEX+1);pb_hash(bad,vw_slen(bad),h);ss_writefile("malformed-release.json",bad,vw_slen(bad))
20 av[2]="malformed-release.json" as *u8 as i64;av[3]=h as i64
21 let malformed: i64=tr_run_capture_cwd(argv[1] as *u8,av,out,PB_CONFCAP,len,timeout,cwd)
22 if len[0]<=0||len[0]>=PB_CONFCAP{return 4};if fsx_write("staged-cli-malformed-output.txt",out,len[0])!=len[0]{return 4}
23 gv_check("actual-staged-cli-malformed-refused",malformed==PB_RC_USAGE&&fsx_find(out,len[0],"refused")>=0,pass)
24 gv_check("malformed-cli-retains-consumer",cl_eq("sites/gatesite/beta/beach.html","48a8e777a292e615c07fc5d3eeca147193ae1eac4fb72a574c1f8ae262d9352d","1147240"),pass)
25 return gv_verdict("SITE-RELEASE-STAGED-CLI",pass,"exact staged ELF executed in retained isolated docroot; full child output retained; no public publication")
26}