OXYGENHUB

✕ Run #269 failed

main at 5f48bfc121e1 · pushed by andymccall · 7.7 s · pipeline aa3e8cfed350 · .flow/pipeline.kdl · all runs

✕ fmt failed · 6.1 s ⤼ build skipped · – ⤼ clippy skipped · – ⤼ test skipped · –
✕ fmt failed · exit 1 · 6.1 s · on plex-1 · signed receipt by plex-1 (OxygenFlow runner)
0.0sfetching andymccall/oxygenhub for state 00ef7b83b340+0cd118748131+19355e2283ab+1b770a1fecf0+1d9702887eee+1e23d0105921+20c36ed92b6b+260c33b4b6c4+26d0d091deb7+2d58f17e728b+3a01077da29a+3e5cd2eba626+46b5e2c59c6b+56a786aa42f1+6978fd76a066+6ff755541a62+72cde3da4176+73beb84b202a+750579ecc721+7829b7c7bb59+8a2dbcb56246+92cea629fdf6+967ef74f6fd9+9991530b4bee+9bc6b4720fc1+a0dd06b0094e+a7c05940ebc4+ad01845c4bf8+ae138eea7a71+b20ddaf96167+b210727578e8+b91e2d81b3f1+bd630386001e+bf614c3d7906+c0fac31d36fd+c21ef37dd4a0+c2732e07323b+c2be148cfe83+c33dbd9a0d38+c96b32865000+cefb0ea24511+d336629ffa90+d8b86dc23809+d94449e42718+d9b3b84605a4+da8f7826a645+db72849cd22e+e1078e99c560+edcef27575a7+efb51b39db1c+ff6569530173
1.8sfetching subrepo andymccall/oxygenflow at 0077c7488e5d+01043bfff9fd+0941bb8ac32b+1a1793bdfcc0+1e6b9fb1e73f+22007df200f3+3b9dddc92057+602ac9c8ed1d+701dcbc5d468+89171fca079c+ab3204b9974b+acf7f363f19e+c1a24672dbd5+de1d7926185f+e38bb032e38b+f2609cf795d8+f3b4fdeb2bc2+fe128fa67a06 for deps/oxygenflow
2.5sfetching subrepo andymccall/oxygen at 01a47cd7f0c8+0389c3e82f6c+05059d434aca+0554aaa7ddef+05e71ed6cdf1+06d16dc2bc13+073a2115995f+07eb99be126e+0912a0337a95+091fef80755d+0955469ac0e1+0a45ba84393a+0bdc3f91a39f+0f93f49ce059+10b4fd430eab+1196b29b5fa9+119bbf50cb86+11c958021e1a+11e2b98a3a39+132b884b9a8d+135212de5370+14edbaaf5291+170bb436e1d5+17f94b13ae54+192b06f8c6d0+192fad1e46a2+19303b4a06fb+19555025a2ac+1966f5db15ee+1983686fb7a7+1a3b62032ed9+1c2bd9abdd4f+1d360c91a289+1ec3f008e96a+20247a03a596+2306a4d24779+236f35c0baba+23b217d75848+23ff1288a5dd+252e8cb23fbc+2863456a0f6d+28fc23d7706a+2b5ee371060e+2b872d074ddb+2bf22305bc48+2c75672fb2fe+2c9ddac3c387+2cd40ea1c04c+30ea9c1e70fa+30fc48081b94+314db9b4f3f8+33472ccc08cc+33be24095b4b+34fad4a92451+3526d339519f+3604179679eb+360aa74a6277+36e51aa806c6+37c299cec358+37f1914b62a8+387335ff7f4d+396891fd2dda+3d7120efe04a+3e5772ccf9da+3f1b8fe25ec9+40a40bb7b798+4161262eeb29+4213c41dfc64+42ccf504aa50+454236d1108d+47ce8b8e2d4b+4afab467e35f+4cce912a0953+4d6c9c1b358c+4dcb8c0916b7+4dee277c327a+4e88e774777a+4f22a8fd0ed4+4fe7d6045860+50a046e439e9+519c7c061bcb+530a0fc650a2+543bbf64d127+54cd08a1e7bf+54e2e6309aa3+5552e69c7325+57d8dc05c9d4+57eaac9107df+58dfe0e134eb+598009a75f6c+5ad2b56544c5+5b4c51307b14+5b9c6ad45f6e+5cde7882d767+60a1223c894f+614541c3cebd+614f55e14eee+61e3bce7ea5b+62794ecc7f74+638fb21420d7+648189388f1a+6706bdcfb63e+694805cca585+69692f14b80f+696bbf29d3eb+69816d688300+6a81dbab471d+6caacfff1d4f+6d3eefbce2f0+6e723b81f5b9+6eae06b6ec04+6f8aeb996558+7026bd7dc5b8+72484195899a+728da0f92161+73d592e763ab+7421309f5372+750251b21a96+7505194116e7+75167672ebcd+76740263089c+77445673174b+7891e21c762f+7993d465675b+79ab8528ff62+79b5a90ffd43+79d03f826ecd+7aa2dc9369e3+7b9809e67c3d+7ba155f20aa0+7d9dab131937+7df9007b163c+7eac74abc586+7fc365369758+80677b7a3513+810691ca6ce6+8177f8177a07+827281eed2ed+82739cfbafe2+8349c327fe83+83d61e803ccd+83e0677b07fe+8457a6cc6984+84b9e9ac0ab4+86e1824f2d0b+86e682c242c6+89a1d0243544+8ab265dc4a51+8b276e0106d1+8b678b298fee+8b7986dd3cb0+8c30d814f2cc+8d80356371c5+8f10a07a1dbe+930e5f3f1682+94084087a876+94cdbc576ce1+957fee30826e+958fb27dda7c+982864068a59+98a1620a3840+992467d31d26+9935d490ddfb+99cdbaeea274+99e3e0af08df+9aa399044d9d+9ac1fbe211b4+9ae4d15a0e4b+9b723f69b032+9d333fc9ca1b+9d580f2132f3+9f9e72b93e4e+a07f60a37fb2+a17fc622ca43+a269bee11bb2+a46f3e4f50b1+a4fad5b085c7+a5f76c79666c+a87c7b9d563a+a9f686edf60b+aa4939e07a09+ab4d4e31b38d+abaa8d517631+ac03130a2b95+ac4af91530fc+acadb5ed28a1+adec9a0796b8+aedfe465b611+afaba5f1306d+b0a0c9afae2d+b0e64e81e4fb+b288cd254343+b2ef93bb2366+b30a880fa409+b35df36b7dc5+b3c5a59a875a+b4fa2bc1ca6a+b689779e9e74+b7f102fcbb17+b837d2b55853+ba160f60219e+bbe654f95806+bc489b6c7f69+bd445775b94e+bdd894b548e4+be0161a88dd7+be451356e3ef+bf0247ee3590+bf3a67819b59+c07e0e7d2d85+c3069537d7c5+c3d2ef6104c2+c5ce0367eddf+c6aa5bd9d1c8+c792033af344+c86270b7c670+c863c7a7a2d1+c9369ad8b1b1+cb8b8082fa73+cbe8499a5a8c+cc7a00565161+cd4eb55e3b3d+cdb5beba7f05+ce118287d9da+ce14f0d68b15+d02e545dc265+d069701a4997+d0990c2bff74+d0d52107b074+d256e826ac5d+d2e3c39da1b1+d3cd7ef95da6+d42369abf180+d443639bcf35+d45dab0484ea+d4dbab97e948+d616faf5d136+d6e0d5b8b339+d77e1702d770+d82e44097323+d8c086ca3eb2+d8d9367878a6+da652d6392d8+da868d5d2646+dbf06d342e1d+dd21fd82687d+dd6147dcf9c2+dfa3e8e95d80+dfb23a3a8cfa+dfe165877345+e02bf0cd0533+e0d56dfca51d+e226a6cc2f71+e266b7d4065c+e293c90dca62+e3d071cecfe2+e7ac6c2e84e4+e7ddd552b619+e83354cdac22+e8c8b34d8348+e8d38e47e9d7+e8e6e0cac26a+e96a430c78f3+eae595568832+eaf3e9068180+ee6aa3e81bc8+ef26f9a28790+f0406c3b40ed+f2f91ceb0e9f+f57bf6702628+f6451fbbae3f+f6dccc4533c8+f7510b63cceb+f8c695764c95+f9466021286a+f9575918477f+f9c98deef326+faa9cd0579d3+fb5b6181618a+fc1a466a1e66+fce44ae9ad29+fd280228bdc2+fddf64baa3d2+fe9586d93fb1+ff0af1ee299d+ff1a64f81c1c+ff1f62fee654 for deps/oxygenflow/deps/oxygen
4.1sbooting a microVM: 1 vCPU, 1024 MiB, rootfs 3fa57d4c1dc8
0.4sDiff in /src/crates/hub/src/notify/mod.rs:142:
0.4s 
0.4s     #[test]
0.4s     fn subjects_say_what_happened() {
0.4s-        assert_eq!(subject("flow.failed", "andy/demo: run #4 on main failed (test)"), "💥 Build Broken: andy/demo: run #4 on main failed (test)");
0.4s-        assert_eq!(subject("flow.fixed", "andy/demo: run #5 on main passed: fixed"), "🎉 Build Success: andy/demo: run #5 on main passed: fixed");
0.4s+        assert_eq!(
0.4s+            subject("flow.failed", "andy/demo: run #4 on main failed (test)"),
0.5s+            "💥 Build Broken: andy/demo: run #4 on main failed (test)"
0.5s+        );
0.5s+        assert_eq!(
0.5s+            subject("flow.fixed", "andy/demo: run #5 on main passed: fixed"),
0.5s+            "🎉 Build Success: andy/demo: run #5 on main passed: fixed"
0.5s+        );
0.5s         assert_eq!(subject("backup.summary", "x"), "📦 Daily Backup Summary: x");
0.5s         assert_eq!(subject("something.new", "x"), "x", "a kind without a label keeps its title");
0.5s     }
0.6sDiff in /src/crates/hub/src/web/recovery.rs:123:
0.6s             let (mailer, name, addr, user) = (app.clone(), a.name().to_string(), a.email.clone(), a.username.clone());
0.6s             tokio::spawn(async move {
0.6s                 let action = crate::mail::Action { label: "Choose a new password", url: &url };
0.6s-                if let Err(err) = crate::mail::send_letter(&mailer, &name, &addr, "🔑 Reset your password", &body, Some(action), None).await {
0.6s+                if let Err(err) = crate::mail::send_letter(&mailer, &name, &addr, "🔑 Reset your password", &body, Some(action), None).await
0.6s+                {
0.6s                     tracing::warn!("reset mail for {user}: {err}");
0.6s                 }
0.6s             });
0.9sDiff in /src/crates/hub/tests/recovery.rs:124:
0.9s     // Registration sends a verification link; until it is used, no reset mail.
0.9s     let m = mail(&h.mailbox);
0.9s     assert_eq!(m.len(), 1);
0.9s-    assert!(m[0].contains("To: andy <[email protected]>") && m[0].contains("Subject: [OxygenHub] =?utf-8?b?4pyJ77iP?= Confirm your email address"), "{}", m[0]);
0.9s+    assert!(
0.9s+        m[0].contains("To: andy <[email protected]>")
0.9s+            && m[0].contains("Subject: [OxygenHub] =?utf-8?b?4pyJ77iP?= Confirm your email address"),
0.9s+        "{}",
0.9s+        m[0]
0.9s+    );
0.9s     let verify = link(&m[0], "/verify/");
0.9s     assert!(!account(app, "andy").await.email_verified);
0.9s     let settings = get(app, "/settings", Some(&old_session)).await;

Ran on plex-1: holds the image, idle, speed 111 (class 3).

⤼ build skipped · –

  
  
  
  
  

Skipped: a job it depends on did not pass.

⤼ clippy skipped · –

  
  
  
  
  

Skipped: a job it depends on did not pass.

⤼ test skipped · –

  
  
  
  
  

Skipped: a job it depends on did not pass.