summaryrefslogtreecommitdiff
path: root/cli/tools/upgrade.rs
diff options
context:
space:
mode:
authorLuca Casonato <hello@lcas.dev>2024-01-30 20:50:54 +0100
committerGitHub <noreply@github.com>2024-01-30 20:50:54 +0100
commitd923705d9d6e9171332fea93e13f5e2cb7ffa5fe (patch)
treeae41467ac45b0b0be03f971eba3e8f15ca489389 /cli/tools/upgrade.rs
parentd730956f49e8624e789dded126f0fba514c2ed55 (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.rs77
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"
);
}