[config] default_to_workspace = false min_version = "0.32.4" [env] CARGO_MAKE_CLIPPY_ARGS = "-- --deny=warnings" CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true [config.modify_core_tasks] namespace = "core" private = true [tasks.tests-setup] private = true script = [ """ test_flags = array --headless --firefox dioxus_test_features = set wasm_test dioxus_test_flags = array_join ${test_flags} " " echo "running tests with flags: ${dioxus_test_flags} and features: ${dioxus_test_features}" set_env DIOXUS_TEST_FLAGS ${dioxus_test_flags} set_env DIOXUS_TEST_FEATURES ${dioxus_test_features} """, ] script_runner = "@duckscript" [tasks.format] command = "cargo" args = ["fmt", "--all"] [tasks.check] command = "cargo" args = ["check", "--workspace", "--examples", "--tests"] [tasks.clippy] command = "cargo" args = [ "clippy", "--workspace", "--examples", "--tests", "--", "-D", "warnings", ] [tasks.tidy] category = "Formatting" dependencies = ["format", "check", "clippy"] description = "Format and Check workspace" [tasks.install-miri] toolchain = "nightly" install_crate = { rustup_component_name = "miri", binary = "cargo +nightly miri", test_arg = "--help" } private = true [tasks.miri-native] command = "cargo" toolchain = "nightly" dependencies = ["install-miri"] args = [ "miri", "test", "--package", "dioxus-native-core", "--test", "miri_native", ] [tasks.miri-stress] command = "cargo" toolchain = "nightly" dependencies = ["install-miri"] args = ["miri", "test", "--package", "dioxus-core", "--test", "miri_stress"] [tasks.miri] dependencies = ["miri-native", "miri-stress"] [tasks.tests] category = "Testing" dependencies = ["tests-setup"] description = "Run all tests" env = { CARGO_MAKE_WORKSPACE_SKIP_MEMBERS = ["**/examples/*"] } run_task = { name = ["test-flow", "test-with-browser"], fork = true } [tasks.build] command = "cargo" args = ["build"] [tasks.test-flow] dependencies = ["test", "docs"] private = true [tasks.test] dependencies = ["build"] command = "cargo" args = [ "test", "--lib", "--bins", "--tests", "--examples", "--workspace", # These tests run on Ubuntu without a screen. Desktop tests that require a screen fail, so we skip them "--exclude", "dioxus-desktop", "--exclude", "dioxus-mobile", ] private = true [tasks.docs] dependencies = ["build"] command = "cargo" args = [ "test", "--doc", "--workspace", ] private = true [tasks.test-with-browser] env = { CARGO_MAKE_WORKSPACE_INCLUDE_MEMBERS = [ "**/packages/router", "**/packages/desktop", ] } private = true workspace = true