mirror of
https://github.com/asterinas/asterinas.git
synced 2025-06-21 00:06:34 +00:00
Fix OSDK CI bugs & Build OSDK with stable channel in CI
This commit is contained in:
committed by
Tate, Hongliang Tian
parent
69abc09f5a
commit
32b1fb3723
@ -163,25 +163,29 @@ pub fn get_current_crate_info() -> CrateInfo {
|
||||
let metadata = get_cargo_metadata(None::<&str>, None::<&[&str]>).unwrap();
|
||||
|
||||
let default_member = get_default_member(&metadata);
|
||||
// Prior 202403 (Rust 1.77.1), the default member string here is in the form of
|
||||
parse_package_id_string(default_member)
|
||||
}
|
||||
|
||||
pub fn parse_package_id_string(package_id: &str) -> CrateInfo {
|
||||
// Prior to 202403 (Rust 1.77.1), the package id string here is in the form of
|
||||
// "<crate_name> <crate_version> (path+file://<crate_path>)".
|
||||
// After that, it's
|
||||
// "path+file://<crate_path>#<crate_name>@<crate_version>", in which the crate
|
||||
// name might not exist if it is the last component of the path.
|
||||
if default_member.starts_with("path+file://") {
|
||||
if package_id.starts_with("path+file://") {
|
||||
// After 1.77.1
|
||||
if default_member.contains('@') {
|
||||
let default_member = default_member.split(['#', '@']).collect::<Vec<&str>>();
|
||||
if package_id.contains('@') {
|
||||
let package_id_segments = package_id.split(['#', '@']).collect::<Vec<&str>>();
|
||||
CrateInfo {
|
||||
name: default_member[1].to_string(),
|
||||
version: default_member[2].to_string(),
|
||||
path: default_member[0]
|
||||
name: package_id_segments[1].to_string(),
|
||||
version: package_id_segments[2].to_string(),
|
||||
path: package_id_segments[0]
|
||||
.trim_start_matches("path+file://")
|
||||
.to_string(),
|
||||
}
|
||||
} else {
|
||||
let default_member = default_member.split(['#']).collect::<Vec<&str>>();
|
||||
let path = default_member[0]
|
||||
let package_id_segments = package_id.split(['#']).collect::<Vec<&str>>();
|
||||
let path = package_id_segments[0]
|
||||
.trim_start_matches("path+file://")
|
||||
.to_string();
|
||||
CrateInfo {
|
||||
@ -191,13 +195,13 @@ pub fn get_current_crate_info() -> CrateInfo {
|
||||
.to_str()
|
||||
.unwrap()
|
||||
.to_string(),
|
||||
version: default_member[1].to_string(),
|
||||
version: package_id_segments[1].to_string(),
|
||||
path,
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Before 1.77.1
|
||||
let default_member = default_member.split(' ').collect::<Vec<&str>>();
|
||||
let default_member = package_id.split(' ').collect::<Vec<&str>>();
|
||||
CrateInfo {
|
||||
name: default_member[0].to_string(),
|
||||
version: default_member[1].to_string(),
|
||||
|
Reference in New Issue
Block a user