diff --git a/desktop/scripts/release/meta.toml b/desktop/scripts/release/meta.toml new file mode 100644 index 000000000000..46648dcd8434 --- /dev/null +++ b/desktop/scripts/release/meta.toml @@ -0,0 +1,3 @@ +base_urls = [ + "https://bunny.cdn.app.mullvad.net" +] \ No newline at end of file diff --git a/mullvad-update/meta/src/artifacts.rs b/mullvad-update/meta/src/artifacts.rs index 907b49bbe739..8617c0deaff7 100644 --- a/mullvad-update/meta/src/artifacts.rs +++ b/mullvad-update/meta/src/artifacts.rs @@ -12,6 +12,7 @@ use mullvad_update::{format, hash}; /// See [crate::config::Config::base_urls] for the assumptions made. pub async fn generate_installer_details( architecture: format::Architecture, + version: &mullvad_version::Version, base_urls: &[String], artifact: &Path, ) -> anyhow::Result { @@ -36,7 +37,7 @@ pub async fn generate_installer_details( .file_name() .and_then(|f| f.to_str()) .context("Unexpected filename")?; - let urls = derive_urls(base_urls, filename); + let urls = derive_urls(base_urls, version, filename); Ok(format::Installer { architecture, @@ -46,12 +47,16 @@ pub async fn generate_installer_details( }) } -fn derive_urls(base_urls: &[String], filename: &str) -> Vec { +fn derive_urls( + base_urls: &[String], + version: &mullvad_version::Version, + filename: &str, +) -> Vec { base_urls .iter() .map(|base_url| { let url = base_url.strip_suffix("/").unwrap_or(base_url); - format!("{url}/{}", filename) + format!("{url}/{version}/{}", filename) }) .collect() } @@ -69,8 +74,11 @@ mod test { ]; assert_eq!( - &derive_urls(&base_urls, "test.exe"), - &["https://fake1.fake/test.exe", "https://fake2.fake/test.exe",] + &derive_urls(&base_urls, &"2025.1".parse().unwrap(), "test.exe"), + &[ + "https://fake1.fake/2025.1/test.exe", + "https://fake2.fake/2025.1/test.exe" + ], ); } } diff --git a/mullvad-update/meta/src/platform.rs b/mullvad-update/meta/src/platform.rs index a781362d766c..4a75df736d3b 100644 --- a/mullvad-update/meta/src/platform.rs +++ b/mullvad-update/meta/src/platform.rs @@ -307,6 +307,7 @@ impl Platform { installers.push( artifacts::generate_installer_details( format::Architecture::Arm64, + version, base_urls, &artifact, ) @@ -317,6 +318,7 @@ impl Platform { installers.push( artifacts::generate_installer_details( format::Architecture::X86, + version, base_urls, &artifact, )