diff options
author | Luca Casonato <hello@lcas.dev> | 2024-01-30 20:50:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-30 20:50:54 +0100 |
commit | d923705d9d6e9171332fea93e13f5e2cb7ffa5fe (patch) | |
tree | ae41467ac45b0b0be03f971eba3e8f15ca489389 /cli/tools/upgrade.rs | |
parent | d730956f49e8624e789dded126f0fba514c2ed55 (diff) |
fix: canary for arm64 macos (#22187)
This doesn't actually trigger the arm64 build job nightly yet. I'll do
that in a follow up.
Diffstat (limited to 'cli/tools/upgrade.rs')
-rw-r--r-- | cli/tools/upgrade.rs | 77 |
1 files changed, 61 insertions, 16 deletions
diff --git a/cli/tools/upgrade.rs b/cli/tools/upgrade.rs index 20d9fb643..70141f571 100644 --- a/cli/tools/upgrade.rs +++ b/cli/tools/upgrade.rs @@ -483,12 +483,6 @@ pub async fn upgrade( }; let download_url = if upgrade_flags.canary { - // NOTE(bartlomieju): to keep clippy happy on M1 macs. - #[allow(clippy::eq_op)] - if env!("TARGET") == "aarch64-apple-darwin" { - bail!("Canary builds are not available for M1/M2"); - } - format!( "https://dl.deno.land/canary/{}/{}", install_version, *ARCHIVE_NAME @@ -502,7 +496,7 @@ pub async fn upgrade( let archive_data = download_package(client, &download_url) .await - .with_context(|| format!("Failed downloading {download_url}"))?; + .with_context(|| format!("Failed downloading {download_url}. The version you requested may not have been built for the current architechture."))?; log::info!("Deno is upgrading to version {}", &install_version); @@ -568,7 +562,7 @@ async fn get_latest_version( release_kind: UpgradeReleaseKind, check_kind: UpgradeCheckKind, ) -> Result<String, AnyError> { - let url = get_url(release_kind, check_kind); + let url = get_url(release_kind, env!("TARGET"), check_kind); let text = client.download_text(url).await?; Ok(normalize_version_from_server(release_kind, &text)) } @@ -586,11 +580,14 @@ fn normalize_version_from_server( fn get_url( release_kind: UpgradeReleaseKind, + target_tuple: &str, check_kind: UpgradeCheckKind, ) -> String { let file_name = match release_kind { - UpgradeReleaseKind::Stable => "release-latest.txt", - UpgradeReleaseKind::Canary => "canary-latest.txt", + UpgradeReleaseKind::Stable => Cow::Borrowed("release-latest.txt"), + UpgradeReleaseKind::Canary => { + Cow::Owned(format!("canary-{target_tuple}-latest.txt")) + } }; let query_param = match check_kind { UpgradeCheckKind::Execution => "", @@ -1024,19 +1021,67 @@ mod test { #[test] fn test_get_url() { assert_eq!( - get_url(UpgradeReleaseKind::Canary, UpgradeCheckKind::Execution), - "https://dl.deno.land/canary-latest.txt" + get_url( + UpgradeReleaseKind::Canary, + "aarch64-apple-darwin", + UpgradeCheckKind::Execution + ), + "https://dl.deno.land/canary-aarch64-apple-darwin-latest.txt" ); assert_eq!( - get_url(UpgradeReleaseKind::Canary, UpgradeCheckKind::Lsp), - "https://dl.deno.land/canary-latest.txt?lsp" + get_url( + UpgradeReleaseKind::Canary, + "aarch64-apple-darwin", + UpgradeCheckKind::Lsp + ), + "https://dl.deno.land/canary-aarch64-apple-darwin-latest.txt?lsp" + ); + assert_eq!( + get_url( + UpgradeReleaseKind::Canary, + "x86_64-pc-windows-msvc", + UpgradeCheckKind::Execution + ), + "https://dl.deno.land/canary-x86_64-pc-windows-msvc-latest.txt" + ); + assert_eq!( + get_url( + UpgradeReleaseKind::Canary, + "x86_64-pc-windows-msvc", + UpgradeCheckKind::Lsp + ), + "https://dl.deno.land/canary-x86_64-pc-windows-msvc-latest.txt?lsp" ); assert_eq!( - get_url(UpgradeReleaseKind::Stable, UpgradeCheckKind::Execution), + get_url( + UpgradeReleaseKind::Stable, + "aarch64-apple-darwin", + UpgradeCheckKind::Execution + ), + "https://dl.deno.land/release-latest.txt" + ); + assert_eq!( + get_url( + UpgradeReleaseKind::Stable, + "aarch64-apple-darwin", + UpgradeCheckKind::Lsp + ), + "https://dl.deno.land/release-latest.txt?lsp" + ); + assert_eq!( + get_url( + UpgradeReleaseKind::Stable, + "x86_64-pc-windows-msvc", + UpgradeCheckKind::Execution + ), "https://dl.deno.land/release-latest.txt" ); assert_eq!( - get_url(UpgradeReleaseKind::Stable, UpgradeCheckKind::Lsp), + get_url( + UpgradeReleaseKind::Stable, + "x86_64-pc-windows-msvc", + UpgradeCheckKind::Lsp + ), "https://dl.deno.land/release-latest.txt?lsp" ); } |