Fix updater to correctly handle aarch64

Now properly handles if a release isn't available for a particular target.
This commit is contained in:
Nathan McCarty 2023-05-16 15:41:54 -04:00
parent fe8cd65c2b
commit 30e29cc5d0
Signed by: thatonelutenist
SSH Key Fingerprint: SHA256:hwQEcmak9E6sdU9bXc98RHw/Xd1AhpB5HZT7ZSVJkRM
3 changed files with 83 additions and 92 deletions

View File

@ -2,159 +2,129 @@
"aarch64-linux": { "aarch64-linux": {
"semeru": { "semeru": {
"versions": { "versions": {
"jdk10": {
"link": "https://github.com/AdoptOpenJDK/openjdk10-openj9-releases/releases/download/jdk-10.0.2%2B13_openj9-0.9.0/OpenJDK10-OPENJ9_x64_Linux_jdk-10.0.2.13_openj9-0.9.0.tar.gz",
"major_version": 10,
"sha256": "1ef0dab3853b2f3666091854ef8149fcb85970254558d5d62cfa9446831779d1",
"java_version": "10.0.2+13"
},
"jdk11": { "jdk11": {
"link": "https://github.com/AdoptOpenJDK/semeru11-binaries/releases/download/jdk-11.0.18%2B10_openj9-0.36.1/ibm-semeru-open-jdk_x64_linux_11.0.18_10_openj9-0.36.1.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru11-binaries/releases/download/jdk-11.0.18%2B10_openj9-0.36.1/ibm-semeru-open-jdk_aarch64_linux_11.0.18_10_openj9-0.36.1.tar.gz",
"major_version": 11, "major_version": 11,
"sha256": "256135d0992f23acaf61cf955325e6a899ebbd41bb2c7fdd2fe7ac4c2ee55e38", "sha256": "499594963aeb85293992f1ee95856f0f1642fd4de350e36766616fc47098fd02",
"java_version": "11.0.18+10" "java_version": "11.0.18+10"
}, },
"jdk12": {
"link": "https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10_openj9-0.15.1/OpenJDK12U-jdk_x64_linux_openj9_12.0.2_10_openj9-0.15.1.tar.gz",
"major_version": 12,
"sha256": "e2f6f021560ddf217c60980ac147856e5b36f0ab0a0fd70091800d6042136229",
"java_version": "12.0.2+10"
},
"jdk13": {
"link": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
"major_version": 13,
"sha256": "aeecf6d30d0c847db81d07793cf97e5dc44890c29366d7d9f8f9f397f6c52590",
"java_version": "13.0.2+8"
},
"jdk14": {
"link": "https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-14.0.2%2B12_openj9-0.21.0/OpenJDK14U-jdk_x64_linux_openj9_14.0.2_12_openj9-0.21.0.tar.gz",
"major_version": 14,
"sha256": "306f7138cdb65daaf2596ec36cafbde72088144c83b2e964f0193662e6caf3be",
"java_version": "14.0.2+12"
},
"jdk15": { "jdk15": {
"link": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_x64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/openjdk15-binaries/releases/download/jdk-15.0.2%2B7_openj9-0.24.0/OpenJDK15U-jdk_aarch64_linux_openj9_15.0.2_7_openj9-0.24.0.tar.gz",
"major_version": 15, "major_version": 15,
"sha256": "5515ccd79b1b5e8d8a615b80d5fe1272f7bb41100e46d94fb78ee611ea014816", "sha256": "b69a4bc87ed2e985d252cff02d53f1a11b8d83d39e0800cd4a1cab4521375314",
"java_version": "15.0.2+7" "java_version": "15.0.2-ea+7"
}, },
"jdk16": { "jdk16": {
"link": "https://github.com/AdoptOpenJDK/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jdk_x64_linux_16.0.2_7_openj9-0.27.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru16-binaries/releases/download/jdk-16.0.2%2B7_openj9-0.27.0/ibm-semeru-open-jdk_aarch64_linux_16.0.2_7_openj9-0.27.0.tar.gz",
"major_version": 16, "major_version": 16,
"sha256": "1349eb9a1d9af491a1984d66a80126730357c4a5c4fcbe7112a2c832f6c0886e", "sha256": "022cda1210331488c3db3d0d1282ea74467397fdabc34cb482cdfe81c45f6a15",
"java_version": "16.0.2+7" "java_version": "16.0.2-ea+7"
}, },
"jdk17": { "jdk17": {
"link": "https://github.com/AdoptOpenJDK/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-jdk_x64_linux_17.0.6_10_openj9-0.36.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-jdk_aarch64_linux_17.0.6_10_openj9-0.36.0.tar.gz",
"major_version": 17, "major_version": 17,
"sha256": "ce39a4f7c2e08e56083f17f3e44c05e0fbbeba775e670f015a337679c99c54c6", "sha256": "7c6ef5b4989313b2e64b77613c13ec66a3fe85429732f63b6fe9f410d9e37d3c",
"java_version": "17.0.6+10" "java_version": "17.0.6+10"
}, },
"jdk18": { "jdk18": {
"link": "https://github.com/AdoptOpenJDK/semeru18-binaries/releases/download/jdk-18.0.2%2B9_openj9-0.33.1/ibm-semeru-open-jdk_x64_linux_18.0.2_9_openj9-0.33.1.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru18-binaries/releases/download/jdk-18.0.2%2B9_openj9-0.33.1/ibm-semeru-open-jdk_aarch64_linux_18.0.2_9_openj9-0.33.1.tar.gz",
"major_version": 18, "major_version": 18,
"sha256": "b694d47666035b1f7870bc3749aa7c1903d50976eab3772fd81c32dab2aa8e64", "sha256": "00e46a2b8be005eb03e3e4d939d4cf9b8331f22ee50ed75b84136d3f0ead7498",
"java_version": "18.0.2+9" "java_version": "18.0.2+9"
}, },
"jdk19": { "jdk19": {
"link": "https://github.com/AdoptOpenJDK/semeru19-binaries/releases/download/jdk-19.0.2%2B7_openj9-0.37.0/ibm-semeru-open-jdk_x64_linux_19.0.2_7_openj9-0.37.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru19-binaries/releases/download/jdk-19.0.2%2B7_openj9-0.37.0/ibm-semeru-open-jdk_aarch64_linux_19.0.2_7_openj9-0.37.0.tar.gz",
"major_version": 19, "major_version": 19,
"sha256": "5fd94c57afe0d4e778bfc284f3f7830c34de59bed4faba12d4bb46a77d0b516e", "sha256": "c20cd3c641eebc3e534fa4ce05b211fc8bcd011eb392ceda40d3fadd35f5f8d0",
"java_version": "19.0.2+7" "java_version": "19.0.2+7"
}, },
"jdk8": { "jdk8": {
"link": "https://github.com/AdoptOpenJDK/semeru8-binaries/releases/download/jdk8u362-b09_openj9-0.36.0/ibm-semeru-open-jdk_x64_linux_8u362b09_openj9-0.36.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru8-binaries/releases/download/jdk8u362-b09_openj9-0.36.0/ibm-semeru-open-jdk_aarch64_linux_8u362b09_openj9-0.36.0.tar.gz",
"major_version": 8, "major_version": 8,
"sha256": "4c956f08cbe02d43a06536e9eae888925cc495a669bd024606389bec5ea6964a", "sha256": "502b13e9ff9dae3984633ef1560b642d9836b8a0e7f5d84baf2d4a438d375360",
"java_version": "1.8.0_362-b09" "java_version": "1.8.0_362-b09"
},
"jdk9": {
"link": "https://github.com/AdoptOpenJDK/openjdk9-openj9-releases/releases/download/jdk-9.0.4%2B12_openj9-0.9.0/OpenJDK9-OPENJ9_x64_Linux_jdk-9.0.4.12_openj9-0.9.0.tar.gz",
"major_version": 9,
"sha256": "d5bb41b7ed4fc1a6aba0914718aff4abec42acf18c776b7641efcbbb761e6e6b",
"java_version": "9.0.4+12"
} }
}, },
"latest": { "latest": {
"link": "https://github.com/AdoptOpenJDK/semeru19-binaries/releases/download/jdk-19.0.2%2B7_openj9-0.37.0/ibm-semeru-open-jdk_x64_linux_19.0.2_7_openj9-0.37.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru19-binaries/releases/download/jdk-19.0.2%2B7_openj9-0.37.0/ibm-semeru-open-jdk_aarch64_linux_19.0.2_7_openj9-0.37.0.tar.gz",
"major_version": 19, "major_version": 19,
"sha256": "5fd94c57afe0d4e778bfc284f3f7830c34de59bed4faba12d4bb46a77d0b516e", "sha256": "c20cd3c641eebc3e534fa4ce05b211fc8bcd011eb392ceda40d3fadd35f5f8d0",
"java_version": "19.0.2+7" "java_version": "19.0.2+7"
}, },
"stable": { "stable": {
"link": "https://github.com/AdoptOpenJDK/semeru19-binaries/releases/download/jdk-19.0.2%2B7_openj9-0.37.0/ibm-semeru-open-jdk_x64_linux_19.0.2_7_openj9-0.37.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru19-binaries/releases/download/jdk-19.0.2%2B7_openj9-0.37.0/ibm-semeru-open-jdk_aarch64_linux_19.0.2_7_openj9-0.37.0.tar.gz",
"major_version": 19, "major_version": 19,
"sha256": "5fd94c57afe0d4e778bfc284f3f7830c34de59bed4faba12d4bb46a77d0b516e", "sha256": "c20cd3c641eebc3e534fa4ce05b211fc8bcd011eb392ceda40d3fadd35f5f8d0",
"java_version": "19.0.2+7" "java_version": "19.0.2+7"
}, },
"lts": { "lts": {
"link": "https://github.com/AdoptOpenJDK/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-jdk_x64_linux_17.0.6_10_openj9-0.36.0.tar.gz", "link": "https://github.com/AdoptOpenJDK/semeru17-binaries/releases/download/jdk-17.0.6%2B10_openj9-0.36.0/ibm-semeru-open-jdk_aarch64_linux_17.0.6_10_openj9-0.36.0.tar.gz",
"major_version": 17, "major_version": 17,
"sha256": "ce39a4f7c2e08e56083f17f3e44c05e0fbbeba775e670f015a337679c99c54c6", "sha256": "7c6ef5b4989313b2e64b77613c13ec66a3fe85429732f63b6fe9f410d9e37d3c",
"java_version": "17.0.6+10" "java_version": "17.0.6+10"
} }
}, },
"temurin": { "temurin": {
"versions": { "versions": {
"jdk11": { "jdk11": {
"link": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_x64_linux_hotspot_11.0.19_7.tar.gz", "link": "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.19%2B7/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.19_7.tar.gz",
"major_version": 11, "major_version": 11,
"sha256": "5f19fb28aea3e28fcc402b73ce72f62b602992d48769502effe81c52ca39a581", "sha256": "0c7763a19b4af4ef5fbae831781b5184e988d6f131d264482399eeaf51b6e254",
"java_version": "11.0.19+7" "java_version": "11.0.19+7"
}, },
"jdk16": { "jdk16": {
"link": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_x64_linux_hotspot_16.0.2_7.tar.gz", "link": "https://github.com/adoptium/temurin16-binaries/releases/download/jdk-16.0.2%2B7/OpenJDK16U-jdk_aarch64_linux_hotspot_16.0.2_7.tar.gz",
"major_version": 16, "major_version": 16,
"sha256": "323d6d7474a359a28eff7ddd0df8e65bd61554a8ed12ef42fd9365349e573c2c", "sha256": "cb77d9d126f97898dfdc8b5fb694d1e0e5d93d13a0a6cb2aeda76f8635384340",
"java_version": "16.0.2+7" "java_version": "16.0.2+7"
}, },
"jdk17": { "jdk17": {
"link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz", "link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.7_7.tar.gz",
"major_version": 17, "major_version": 17,
"sha256": "e9458b38e97358850902c2936a1bb5f35f6cffc59da9fcd28c63eab8dbbfbc3b", "sha256": "0084272404b89442871e0a1f112779844090532978ad4d4191b8d03fc6adfade",
"java_version": "17.0.7+7" "java_version": "17.0.7+7"
}, },
"jdk18": { "jdk18": {
"link": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_x64_linux_hotspot_18.0.2.1_1.tar.gz", "link": "https://github.com/adoptium/temurin18-binaries/releases/download/jdk-18.0.2.1%2B1/OpenJDK18U-jdk_aarch64_linux_hotspot_18.0.2.1_1.tar.gz",
"major_version": 18, "major_version": 18,
"sha256": "7d6beba8cfc0a8347f278f7414351191a95a707d46b6586e9a786f2669af0f8b", "sha256": "262be608e266fd76d7496af83b2832be853c3aaf7460d6a4da198cd40db74553",
"java_version": "18.0.2.1+1" "java_version": "18.0.2.1+1"
}, },
"jdk19": { "jdk19": {
"link": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_x64_linux_hotspot_19.0.2_7.tar.gz", "link": "https://github.com/adoptium/temurin19-binaries/releases/download/jdk-19.0.2%2B7/OpenJDK19U-jdk_aarch64_linux_hotspot_19.0.2_7.tar.gz",
"major_version": 19, "major_version": 19,
"sha256": "3a3ba7a3f8c3a5999e2c91ea1dca843435a0d1c43737bd2f6822b2f02fc52165", "sha256": "1c4be9aa173cb0deb0d215643d9509c8900e5497290b29eee4bee335fa57984f",
"java_version": "19.0.2+7" "java_version": "19.0.2+7"
}, },
"jdk20": { "jdk20": {
"link": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.1%2B9/OpenJDK20U-jdk_x64_linux_hotspot_20.0.1_9.tar.gz", "link": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.1%2B9/OpenJDK20U-jdk_aarch64_linux_hotspot_20.0.1_9.tar.gz",
"major_version": 20, "major_version": 20,
"sha256": "43ad054f135a7894dc87ad5d10ad45d8e82846186515892acdbc17c2c5cd27e4", "sha256": "b16c0271899de1f0e277dc0398bfff11b54511765f104fa938929ac484dc926d",
"java_version": "20.0.1+9" "java_version": "20.0.1+9"
}, },
"jdk8": { "jdk8": {
"link": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_x64_linux_hotspot_8u372b07.tar.gz", "link": "https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u372-b07/OpenJDK8U-jdk_aarch64_linux_hotspot_8u372b07.tar.gz",
"major_version": 8, "major_version": 8,
"sha256": "78a0b3547d6f3d46227f2ad8c774248425f20f1cd63f399b713f0cdde2cc376c", "sha256": "195808eb42ab73535c84de05188914a52a47c1ac784e4bf66de95fe1fd315a5a",
"java_version": "1.8.0_372-b07" "java_version": "1.8.0_372-b07"
} }
}, },
"latest": { "latest": {
"link": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk20u-2023-05-10-08-56-beta/OpenJDK20U-jdk_x64_linux_hotspot_2023-05-10-08-56.tar.gz", "link": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk20u-2023-05-10-08-56-beta/OpenJDK20U-jdk_aarch64_linux_hotspot_2023-05-10-08-56.tar.gz",
"major_version": 20, "major_version": 20,
"sha256": "d73db1554c637bf1619cd0e23f27e3e236ab505359934afbf7abe0cd357288c9", "sha256": "e960a51dbc2d1f984eabbdf964af54481bf3eb697c3a4a8aedf3cdfb3c6af8ab",
"java_version": "20.0.1-beta+9-202305100346" "java_version": "20.0.1-beta+9-202305100346"
}, },
"stable": { "stable": {
"link": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.1%2B9/OpenJDK20U-jdk_x64_linux_hotspot_20.0.1_9.tar.gz", "link": "https://github.com/adoptium/temurin20-binaries/releases/download/jdk-20.0.1%2B9/OpenJDK20U-jdk_aarch64_linux_hotspot_20.0.1_9.tar.gz",
"major_version": 20, "major_version": 20,
"sha256": "43ad054f135a7894dc87ad5d10ad45d8e82846186515892acdbc17c2c5cd27e4", "sha256": "b16c0271899de1f0e277dc0398bfff11b54511765f104fa938929ac484dc926d",
"java_version": "20.0.1+9" "java_version": "20.0.1+9"
}, },
"lts": { "lts": {
"link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.7_7.tar.gz", "link": "https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.7%2B7/OpenJDK17U-jdk_aarch64_linux_hotspot_17.0.7_7.tar.gz",
"major_version": 17, "major_version": 17,
"sha256": "e9458b38e97358850902c2936a1bb5f35f6cffc59da9fcd28c63eab8dbbfbc3b", "sha256": "0084272404b89442871e0a1f112779844090532978ad4d4191b8d03fc6adfade",
"java_version": "17.0.7+7" "java_version": "17.0.7+7"
} }
} }

View File

@ -7,7 +7,7 @@ use color_eyre::{
}; };
use isahc::HttpClient; use isahc::HttpClient;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use tracing::{debug, error, instrument, trace, warn}; use tracing::{debug, error, info, instrument, trace, warn};
/// Abstraction over an adoptium API instance /// Abstraction over an adoptium API instance
#[derive(custom_debug::Debug)] #[derive(custom_debug::Debug)]
@ -58,18 +58,21 @@ impl AdoptiumAPI {
} }
/// Return the most recent version for the specified release and architecture /// Return the most recent version for the specified release and architecture
#[instrument(skip(arch, os), fields(arch = arch.as_ref(), os = os.as_ref()))]
pub async fn release( pub async fn release(
&self, &self,
version: u32, version: u32,
arch: impl AsRef<str>, arch: impl AsRef<str>,
os: impl AsRef<str>,
pre_release: bool, pre_release: bool,
) -> Result<Version> { ) -> Result<Version> {
let release_type = if pre_release { "ea" } else { "ga" }; let release_type = if pre_release { "ea" } else { "ga" };
let arch = arch.as_ref(); let arch = arch.as_ref();
let os = os.as_ref();
let version = format!("[{version}, {})", version + 1); let version = format!("[{version}, {})", version + 1);
let version = urlencoding::encode(&version); let version = urlencoding::encode(&version);
let url = format!( let url = format!(
"{}/v3/info/release_versions?architecture={arch}&heap_size=normal&image_type=jdk&os_type=linux&project=jdk&release_type={release_type}&sort_method=DATE&sort_order=DESC&jvm_impl={}&version={version}", "{}/v3/info/release_versions?architecture={arch}&heap_size=normal&image_type=jdk&os_type={os}&project=jdk&release_type={release_type}&sort_method=DATE&sort_order=DESC&jvm_impl={}&version={version}",
self.base_url, self.base_url,
self.jvm_impl, self.jvm_impl,
); );
@ -90,18 +93,20 @@ impl AdoptiumAPI {
} }
/// Return latest release /// Return latest release
#[instrument(skip(arch), fields(arch = arch.as_ref()))] #[instrument(skip(arch, os), fields(arch = arch.as_ref(), os = os.as_ref()))]
pub async fn latest( pub async fn latest(
&self, &self,
version: u32, version: u32,
arch: impl AsRef<str>, arch: impl AsRef<str>,
os: impl AsRef<str>,
pre_release: bool, pre_release: bool,
) -> Result<Release> { ) -> Result<Release> {
let release_type = if pre_release { "ea" } else { "ga" }; let release_type = if pre_release { "ea" } else { "ga" };
debug!(?release_type); debug!(?release_type);
let arch = arch.as_ref(); let arch = arch.as_ref();
let os = os.as_ref();
let url = format!( let url = format!(
"{}/v3/assets/feature_releases/{version}/{release_type}?architecture={arch}&heap_size=normal&image_type=jdk&os=linux&page=0&page_size=10&project=jdk&sort_method=DATE&sort_order=DESC&jvm_impl={}", "{}/v3/assets/feature_releases/{version}/{release_type}?architecture={arch}&heap_size=normal&image_type=jdk&os={os}&page=0&page_size=10&project=jdk&sort_method=DATE&sort_order=DESC&jvm_impl={}",
self.base_url, self.base_url,
self.jvm_impl self.jvm_impl
); );
@ -146,49 +151,65 @@ impl AdoptiumAPI {
} }
/// Get all versions /// Get all versions
pub async fn get_all(&self, arch: impl AsRef<str>) -> Result<OutputReleases> { #[instrument(skip(arch, os), fields(arch = arch.as_ref(), os = os.as_ref()))]
pub async fn get_all(
&self,
arch: impl AsRef<str>,
os: impl AsRef<str>,
) -> Result<OutputReleases> {
let input_versions = self let input_versions = self
.available_releases() .available_releases()
.await .await
.context("Failed to get releases")?; .context("Failed to get releases")?;
let arch = arch.as_ref(); let arch = arch.as_ref();
let os = os.as_ref();
info!(?input_versions, "Getting versions");
let mut versions: BTreeMap<String, OutputRelease> = BTreeMap::new(); let mut versions: BTreeMap<String, OutputRelease> = BTreeMap::new();
for release in &input_versions.available_releases { for release in &input_versions.available_releases {
let output_release: OutputRelease = self match self.latest(*release, arch, os, false).await {
.latest(*release, arch, false) Ok(output_release) => {
.await let output_release: OutputRelease = output_release.into();
.context("Failed to get version")? trace!(?output_release, "Inserting version");
.into();
versions.insert( versions.insert(
format!("jdk{}", output_release.major_version), format!("jdk{}", output_release.major_version),
output_release, output_release,
); );
} }
Err(e) => {
warn!(?e, ?release, "Version not available for os/architecture");
}
};
}
info!("Getting latest");
let latest: OutputRelease = match self let latest: OutputRelease = match self
.latest(input_versions.most_recent_feature_version, arch, true) .latest(input_versions.most_recent_feature_version, arch, os, true)
.await .await
{ {
Ok(x) => x.into(), Ok(x) => x.into(),
Err(_) => self Err(_) => self
.latest(input_versions.most_recent_feature_release, arch, false) .latest(input_versions.most_recent_feature_release, arch, os, false)
.await .await
.context("Failed to get latest version")? .context("Failed to get latest version")?
.into(), .into(),
}; };
info!("Getting stable");
let stable: OutputRelease = self let stable: OutputRelease = self
.latest( .latest(
input_versions.available_releases[input_versions.available_releases.len() - 1], input_versions.available_releases[input_versions.available_releases.len() - 1],
arch, arch,
os,
false, false,
) )
.await .await
.context("Failed to get version - stable")? .context("Failed to get version - stable")?
.into(); .into();
info!("Getting lts");
let lts: OutputRelease = self let lts: OutputRelease = self
.latest( .latest(
input_versions.available_lts_releases input_versions.available_lts_releases
[input_versions.available_lts_releases.len() - 1], [input_versions.available_lts_releases.len() - 1],
arch, arch,
os,
false, false,
) )
.await .await

View File

@ -28,14 +28,14 @@ async fn main() -> Result<()> {
x86_64.insert( x86_64.insert(
"temurin".to_string(), "temurin".to_string(),
adoptium adoptium
.get_all("x64") .get_all("x64", "linux")
.await .await
.context("Failed getting x86_64 adopt releases")?, .context("Failed getting x86_64 adopt releases")?,
); );
x86_64.insert( x86_64.insert(
"semeru".to_string(), "semeru".to_string(),
semeru semeru
.get_all("x64") .get_all("x64", "linux")
.await .await
.context("Failed getting x86_64 adopt releases")?, .context("Failed getting x86_64 adopt releases")?,
); );
@ -46,14 +46,14 @@ async fn main() -> Result<()> {
aarch64.insert( aarch64.insert(
"temurin".to_string(), "temurin".to_string(),
adoptium adoptium
.get_all("x64") .get_all("aarch64", "linux")
.await .await
.context("Failed getting aarch64 adopt releases")?, .context("Failed getting aarch64 adopt releases")?,
); );
aarch64.insert( aarch64.insert(
"semeru".to_string(), "semeru".to_string(),
semeru semeru
.get_all("x64") .get_all("aarch64", "linux")
.await .await
.context("Failed getting aarch64 adopt releases")?, .context("Failed getting aarch64 adopt releases")?,
); );