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

+21
View File
@@ -439,6 +439,7 @@ impl Output {
/// Render the current state of everything to the console screen
pub fn render(&mut self, runner: &AppServer, server: &WebServer) {
if !self.interactive {
self.emit_logs_to_tracing();
return;
}
@@ -1094,11 +1095,31 @@ impl Output {
lines
}
/// Drains the current log queue to tracing so they still get printed even if the output is non-interactive
fn emit_logs_to_tracing(&mut self) {
// In non-interactive mode (CI, piped output), drain pending logs to tracing
// so they still appear in stdout/stderr instead of being silently dropped.
while let Some(log) = self.pending_logs.pop_back() {
let msg = match &log.content {
TraceContent::Text(s) => s.as_str(),
TraceContent::Cargo(d) => d.message.as_str(),
};
match log.level {
Level::ERROR => tracing::error!("{msg}"),
Level::WARN => tracing::warn!("{msg}"),
Level::INFO => tracing::info!("{msg}"),
Level::DEBUG => tracing::debug!("{msg}"),
Level::TRACE => tracing::trace!("{msg}"),
}
}
}
}
impl std::ops::Drop for Output {
fn drop(&mut self) {
if !self.interactive {
self.emit_logs_to_tracing();
return;
}
+2 -2
View File
@@ -300,7 +300,7 @@ impl AppServer {
let mut changes: Vec<_> = event.into_iter().collect();
// Dequeue in bulk if we can, we might've received a lot of events in one go
while let Some(event) = self.watcher_rx.try_next().ok().flatten() {
while let Ok(event) = self.watcher_rx.try_recv() {
changes.push(event);
}
@@ -1313,7 +1313,7 @@ impl AppServer {
let depth = relative.components().count();
let is_better = best_match
.as_ref()
.map_or(true, |(_, best_depth)| depth < *best_depth);
.is_none_or(|(_, best_depth)| depth < *best_depth);
if is_better {
best_match = Some((krate.name.replace('-', "_"), depth));
}
+1 -1
View File
@@ -26,7 +26,7 @@ use futures_util::{
StreamExt,
};
use hyper::HeaderMap;
use rustls::crypto::{aws_lc_rs::default_provider, CryptoProvider};
use rustls::crypto::{ring::default_provider, CryptoProvider};
use serde::{Deserialize, Serialize};
use std::{
convert::Infallible,