Add GitHub CI security and release workflows

This commit is contained in:
Eric Wendland 2026-05-28 16:44:58 +02:00
commit 1006f41e45
10 changed files with 396 additions and 0 deletions

View file

@ -12453,6 +12453,10 @@ mod tests {
use super::*;
use tokio::io::AsyncReadExt;
fn skip_iroh_integration_tests() -> bool {
std::env::var_os("GETH_TEST_SKIP_IROH").is_some()
}
#[derive(Debug, PartialEq, Eq)]
enum RemoteGuardKind {
Capability,
@ -13121,6 +13125,10 @@ mod tests {
#[tokio::test]
async fn peer_ping_uses_signed_peer_card_over_iroh() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
let left_home = tempfile::tempdir().expect("left home");
let right_home = tempfile::tempdir().expect("right home");
let left_paths = GethPaths::from_home(left_home.path());
@ -14719,6 +14727,10 @@ mod tests {
#[tokio::test]
async fn overlay_packets_route_over_dedicated_iroh_alpn_with_authorization() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
let left_home = tempfile::tempdir().expect("left home");
let right_home = tempfile::tempdir().expect("right home");
let left_paths = GethPaths::from_home(left_home.path());

View file

@ -1,6 +1,10 @@
use std::process::{Child, Command};
use std::time::{Duration, Instant};
fn skip_iroh_integration_tests() -> bool {
std::env::var_os("GETH_TEST_SKIP_IROH").is_some()
}
fn unix_sockets_available(home: &std::path::Path) -> bool {
let probe = home.join("probe.sock");
match std::os::unix::net::UnixListener::bind(&probe) {
@ -248,6 +252,10 @@ fn geth_status_against_running_daemon() {
#[test]
fn peer_ping_uses_daemon_owned_iroh_endpoint() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
let left_home = tempfile::tempdir().expect("left tempdir");
let right_home = tempfile::tempdir().expect("right tempdir");
if !unix_sockets_available(left_home.path()) || !unix_sockets_available(right_home.path()) {
@ -329,6 +337,10 @@ fn peer_ping_uses_daemon_owned_iroh_endpoint() {
#[test]
fn sync_now_completes_owner_approved_node_enrollment_flow() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
if !ssh_keygen_available() {
return;
}
@ -585,6 +597,10 @@ fn sync_now_completes_owner_approved_node_enrollment_flow() {
#[test]
fn denied_remote_operations_do_not_mutate_serving_node_state() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
let left_home = tempfile::tempdir().expect("left tempdir");
let right_home = tempfile::tempdir().expect("right tempdir");
if !unix_sockets_available(left_home.path()) || !unix_sockets_available(right_home.path()) {
@ -744,6 +760,10 @@ fn denied_remote_operations_do_not_mutate_serving_node_state() {
#[test]
fn unsigned_keychain_and_auth_ops_are_rejected_during_peer_sync() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
let left_home = tempfile::tempdir().expect("left tempdir");
let right_home = tempfile::tempdir().expect("right tempdir");
if !unix_sockets_available(left_home.path()) || !unix_sockets_available(right_home.path()) {
@ -903,6 +923,10 @@ fn unsigned_keychain_and_auth_ops_are_rejected_during_peer_sync() {
#[test]
fn invalidly_signed_keychain_and_auth_ops_are_rejected_during_peer_sync() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
let left_home = tempfile::tempdir().expect("left tempdir");
let right_home = tempfile::tempdir().expect("right tempdir");
if !unix_sockets_available(left_home.path()) || !unix_sockets_available(right_home.path()) {
@ -1107,6 +1131,10 @@ fn invalidly_signed_keychain_and_auth_ops_are_rejected_during_peer_sync() {
#[test]
fn conflicting_keychain_and_auth_ops_are_rejected_during_peer_sync() {
if skip_iroh_integration_tests() {
eprintln!("skipping Iroh integration test because GETH_TEST_SKIP_IROH is set");
return;
}
if !ssh_keygen_available() {
return;
}