OXYGENHUB

Pin oxygenflow 08d0082d: artifacts when "always" 336c953a020f

The hub now parses when "always" on an artifact and tells the runner,
so a failing job keeps a test report (oxygenflow#37); the failing-job
test declares it.
Author
Andy McCall @andymccall <[email protected]>
When
· 2026-10-06 18:07 UTC
Signature
✔ signed by Andy McCall
Hash
336c953a020f9376fcc43f205e1d11763241c476674d6211fcf37a9562c329b3
Depends on
1f78655a0466 380996db84e5 42fa95540468 d29070faef66
Depended on by
4bae285c6ed8
In bookmarks
api-unknown-fields cancel-landed-runs clear-waiting close-proposal-140 diffusion-pin-bookmark draft-ready image-check job-waits main oh-comment-body-file proposal-list-fast run-one-job wiki-says-so
In tags
v0.4.1 v0.4.2 v0.5.0 v0.5.1 v0.5.2 v0.6.0 v0.6.1 v0.7.0 v0.8.0 v0.9.0 v0.9.1 v0.9.11 v0.9.15 v0.9.16 v0.9.19 v0.9.2 v0.9.20 v0.9.21 v0.9.22 v0.9.23 v0.9.24 v0.9.3 v0.9.4 v0.9.5 v0.9.6 v0.9.7 v0.9.8 v0.9.9
Edits
4 atoms, 0 tree operations, 2 files

Browse the tree at this change

modified crates/hub/tests/flow.rs +2 −1
…
949 unchanged lines
950 950
        work.path(),
951 951
        ".flow/pipeline.kdl",
952 952
        &format!(
953 -
            "schema-version 1\nsandbox \"alpine\" {{\n    rootfs \"cas://blob/{ROOTFS}\"\n}}\njob \"test\" {{\n    sandbox \"alpine\"\n    exec \"make\" \"test\"\n    output {{\n        artifact \"junit\" {{\n            path \"/src/out/junit.xml\"\n        }}\n    }}\n}}\n"
953 +
            "schema-version 1\nsandbox \"alpine\" {{\n    rootfs \"cas://blob/{ROOTFS}\"\n}}\njob \"test\" {{\n    sandbox \"alpine\"\n    exec \"make\" \"test\"\n    output {{\n        artifact \"junit\" {{\n            path \"/src/out/junit.xml\"\n            when \"always\"\n        }}\n    }}\n}}\n"
954 954
        ),
955 955
    );
956 956
    c.snapshot("test").unwrap();
…
1 unchanged lines
958 958
    assert!(c.push("origin", false).unwrap().iter().all(|r| r.ok));
959 959
    let run = runs_of(&h.app, "andy", "demo").await.remove(0);
960 960
    let a = claim(&h.app).await.unwrap();
961 +
    assert_eq!(a["job"]["outputs"][0]["always"], true, "the runner is told to keep it from a failing job");
961 962
    let id = a["job_id"].as_i64().unwrap();
962 963
    let (st, text) = upload(&h.app, id, "junit", b"<testsuites/>").await;
963 964
    assert_eq!(st, StatusCode::OK, "{text}");
…
1204 unchanged lines
replaced deps/oxygenflow +0 −0

No line changes.