rip out tauri bundle (v2), swc -> esbuild, blacksmith -> warpbuild, FAST CI 🚀 (#5328)

- inline mac, windows, linux bundling in the cli
- remove tauri bundle from our dep tree
- trim down the rpm crate for fewer dependencies in tree
- migrate from blacksmith to warpbuild
- move off swc and instead use esbuild via tool
- use dev drives in windows CI
- use fork of nix action for faster caching
- test bundling in CI
- fix asset handling in linux 
- add default APPDATA location for webview2 installs for dioxus apps on windows
This commit is contained in:
Jonathan Kelley authored and GitHub committed 2026-03-20 12:27:13 -07:00
1 parent be7296f4f0
commit b2d01e6779
83 files changed
+7756 -5403

No files matched your search

+33 -8
View File
@@ -121,7 +121,7 @@ pub(crate) struct WixSettings {
pub(crate) fips_compliant: bool,
/// MSI installer version in the format `major.minor.patch.build` (build is optional).
///
/// Because a valid version is required for MSI installer, it will be derived from [`tauri_bundler::PackageSettings::version`] if this field is not set.
/// Because a valid version is required for MSI installer, it will be derived from the package version if this field is not set.
///
/// The first field is the major version and has a maximum value of 255. The second field is the minor version and has a maximum value of 255.
/// The third and fourth fields have a maximum value of 65,535.
@@ -132,10 +132,9 @@ pub(crate) struct WixSettings {
/// A GUID upgrade code for MSI installer. This code **_must stay the same across all of your updates_**,
/// otherwise, Windows will treat your update as a different app and your users will have duplicate versions of your app.
///
/// By default, tauri generates this code by generating a Uuid v5 using the string `<productName>.exe.app.x64` in the DNS namespace.
/// You can use Tauri's CLI to generate and print this code for you by running `tauri inspect wix-upgrade-code`.
/// By default, this code is generated as a Uuid v5 using the string `<productName>.exe.app.x64` in the DNS namespace.
///
/// It is recommended that you set this value in your tauri config file to avoid accidental changes in your upgrade code
/// It is recommended that you set this value in your Dioxus.toml to avoid accidental changes in your upgrade code
/// whenever you want to change your product name.
#[serde(default)]
#[schemars(with = "Option<String>")]
@@ -146,28 +145,39 @@ pub(crate) struct WixSettings {
pub(crate) struct MacOsSettings {
#[serde(default)]
pub(crate) bundle_version: Option<String>,
#[serde(default)]
pub(crate) frameworks: Option<Vec<String>>,
#[serde(default)]
pub(crate) minimum_system_version: Option<String>,
#[serde(default)]
pub(crate) license: Option<String>,
#[serde(default)]
pub(crate) exception_domain: Option<String>,
#[serde(default)]
pub(crate) signing_identity: Option<String>,
#[serde(default)]
pub(crate) provider_short_name: Option<String>,
#[serde(default)]
pub(crate) entitlements: Option<String>,
#[serde(default)]
pub(crate) info_plist_path: Option<PathBuf>,
#[serde(default)]
pub(crate) bundle_name: Option<String>,
/// List of custom files to add to the application bundle.
/// Maps the path in the Contents directory in the app to the path of the file to include (relative to the current working directory).
#[serde(default)]
pub files: HashMap<PathBuf, PathBuf>,
/// Preserve the hardened runtime version flag, see <https://developer.apple.com/documentation/security/hardened_runtime>
///
/// Settings this to `false` is useful when using an ad-hoc signature, making it less strict.
@@ -290,15 +300,19 @@ pub struct CustomSignCommandSettings {
pub args: Vec<String>,
}
#[derive(Clone, Copy, Debug, clap::ValueEnum, Serialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, clap::ValueEnum, Serialize)]
pub(crate) enum PackageType {
/// The macOS application bundle (.app).
#[clap(name = "macos")]
MacOsBundle,
/// The iOS app bundle.
/// The raw iOS application bundle (.app).
#[clap(name = "ios")]
IosBundle,
IosApp,
/// The distributable iOS application archive (.ipa).
#[clap(name = "ipa")]
Ipa,
/// The Windows bundle (.msi).
#[clap(name = "msi")]
@@ -327,6 +341,14 @@ pub(crate) enum PackageType {
/// The Updater bundle (a patch of an existing app)
#[clap(name = "updater")]
Updater,
/// Android application package (.apk).
#[clap(name = "apk")]
Apk,
/// Android App Bundle (.aab).
#[clap(name = "aab")]
Aab,
}
impl FromStr for PackageType {
@@ -335,7 +357,8 @@ impl FromStr for PackageType {
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"macos" => Ok(PackageType::MacOsBundle),
"ios" => Ok(PackageType::IosBundle),
"ios" => Ok(PackageType::IosApp),
"ipa" => Ok(PackageType::Ipa),
"msi" => Ok(PackageType::WindowsMsi),
"nsis" => Ok(PackageType::Nsis),
"deb" => Ok(PackageType::Deb),
@@ -343,6 +366,8 @@ impl FromStr for PackageType {
"appimage" => Ok(PackageType::AppImage),
"dmg" => Ok(PackageType::Dmg),
"updater" => Ok(PackageType::Updater),
"apk" => Ok(PackageType::Apk),
"aab" => Ok(PackageType::Aab),
_ => Err(format!("{s} is not a valid package type")),
}
}