Add production build pipeline (#46)
CI / build-and-test (push) Successful in 1m8s
CI / production-build (push) Successful in 4m39s

## Summary
- split development dynamic linking from production builds
- add headless processed-asset generation
- add a separate production CI cache and static Bevy/Rust linkage verification
- keep custom debug features enabled for production builds behind a feature gate

Reviewed-on: #46
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #46.
This commit is contained in:
2026-09-19 17:04:18 +00:00
committed by EIREXE
parent 804e5e37e0
commit 0dc5d0392d
8 changed files with 152 additions and 12 deletions
+31
View File
@@ -0,0 +1,31 @@
use bevy::{
app::ScheduleRunnerPlugin,
asset::{AssetMode, AssetPlugin, processor::AssetProcessor, processor::ProcessorState},
prelude::*,
tasks::block_on,
};
use shinespark::AssetProcessingPlugin;
use std::{process::ExitCode, time::Duration};
fn main() -> ExitCode {
let mut app = App::new();
app.add_plugins(MinimalPlugins.set(ScheduleRunnerPlugin::run_loop(Duration::from_millis(50))))
.add_plugins(AssetPlugin {
mode: AssetMode::Processed,
use_asset_processor_override: Some(true),
..default()
})
.add_plugins(AssetProcessingPlugin)
.add_systems(Update, finish_when_processed);
app.run();
ExitCode::SUCCESS
}
fn finish_when_processed(processor: Option<Res<AssetProcessor>>, mut exit: MessageWriter<AppExit>) {
if processor
.is_some_and(|processor| block_on(processor.get_state()) == ProcessorState::Finished)
{
exit.write(AppExit::Success);
}
}