diff --git a/src/tools/kata-ctl/Cargo.lock b/src/tools/kata-ctl/Cargo.lock index 903465d495..e1c794294b 100644 --- a/src/tools/kata-ctl/Cargo.lock +++ b/src/tools/kata-ctl/Cargo.lock @@ -1382,6 +1382,7 @@ dependencies = [ "seccompiler", "serde", "serde_json", + "shim-interface", "slog", "slog-scope", "thiserror", @@ -2188,6 +2189,7 @@ dependencies = [ "safe-path", "serde", "serde_json", + "shim-interface", ] [[package]] @@ -2717,6 +2719,7 @@ dependencies = [ "logging", "oci", "persist", + "shim-interface", "slog", "slog-scope", "tokio", @@ -2913,6 +2916,16 @@ dependencies = [ "digest", ] +[[package]] +name = "shim-interface" +version = "0.1.0" +dependencies = [ + "anyhow", + "hyper", + "hyperlocal", + "tokio", +] + [[package]] name = "signal-hook-registry" version = "1.4.0" diff --git a/src/tools/kata-ctl/src/check.rs b/src/tools/kata-ctl/src/check.rs index 0d72d087d5..28499da103 100644 --- a/src/tools/kata-ctl/src/check.rs +++ b/src/tools/kata-ctl/src/check.rs @@ -126,6 +126,7 @@ fn get_kata_all_releases_by_url() -> std::result::Result, reqwest:: .header(CONTENT_TYPE, JSON_TYPE) .header(USER_AGENT, USER_AGT) .send()? + .error_for_status()? .json()?; Ok(releases) } @@ -202,6 +203,7 @@ mod tests { .header(CONTENT_TYPE, JSON_TYPE) .header(USER_AGENT, USER_AGT) .send()? + .error_for_status()? .json::>()?; let version = content["tag_name"].as_str().unwrap(); @@ -254,7 +256,17 @@ mod tests { #[test] fn check_latest_version() { - let version = get_kata_version_by_url(KATA_GITHUB_URL).unwrap(); + let version = get_kata_version_by_url(KATA_GITHUB_URL); + // sometime in GitHub action accessing to github.com API may fail + // we can skip this test to prevent the whole test fail. + if version.is_err() { + println!( + "WARNING!!!\nget kata version failed({:?}), this maybe a temporary error, just skip the test.", + version.unwrap_err() + ); + return; + } + let version = version.unwrap(); let v = Version::parse(&version).unwrap(); assert!(!v.major.to_string().is_empty());