Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

try to update to SciML CI #1094

Merged
merged 7 commits into from
Oct 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 0 additions & 44 deletions .github/workflows/CI.yml

This file was deleted.

39 changes: 39 additions & 0 deletions .github/workflows/Test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: "Tests"

on:
pull_request:
branches:
- master
paths-ignore:
- 'docs/**'
push:
branches:
- master
paths-ignore:
- 'docs/**'

concurrency:
# Skip intermediate builds: always, but for the master branch.
# Cancel intermediate builds: always, but for the master branch.
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

jobs:
tests:
name: "Tests"
strategy:
fail-fast: false
matrix:
version:
- "1"
- "lts"
- "pre"
group:
- Core
- Spatial
- Extensions
uses: "SciML/.github/.github/workflows/tests.yml@v1"
with:
julia-version: "${{ matrix.version }}"
group: "${{ matrix.group }}"
secrets: "inherit"
11 changes: 5 additions & 6 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -71,17 +71,14 @@ Unitful = "1.12.4"
julia = "1.10"

[extras]
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
DiffEqCallbacks = "459566f4-90b8-5000-8ac3-15dfb0a30def"
DomainSets = "5b8099bc-c8ec-5219-889f-1d9e522a28bf"
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
Graphviz_jll = "3c863552-8265-54e4-a6dc-903eb78fde85"
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
Expand All @@ -92,9 +89,11 @@ StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f"
StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0"
# StructuralIdentifiability = "220ca800-aa68-49bb-acd8-6037fa93a544"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"

[targets]
test = ["BifurcationKit", "CairoMakie", "DiffEqCallbacks", "DomainSets", "Graphviz_jll", "HomotopyContinuation", "Logging", "GraphMakie", "NonlinearSolve", "OrdinaryDiffEq", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve", "StableRNGs", "StaticArrays", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq", "Test", "Unitful"]
test = ["DiffEqCallbacks", "DomainSets", "Graphviz_jll", "Logging", "NonlinearSolve",
"OrdinaryDiffEq", "Pkg", "Plots", "Random", "SafeTestsets", "SciMLBase", "SciMLNLSolve",
"StableRNGs", "StaticArrays", "Statistics", "SteadyStateDiffEq", "StochasticDiffEq",
"Test", "Unitful"]
12 changes: 12 additions & 0 deletions test/extensions/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[deps]
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
Catalyst = "479239e8-5488-4da2-87a7-35f2df7eef83"
CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0"
GraphMakie = "1ecd5474-83a3-4783-bb4f-06765db800d2"
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
JumpProcesses = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5"
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f"
# StructuralIdentifiability = "220ca800-aa68-49bb-acd8-6037fa93a544"
140 changes: 77 additions & 63 deletions test/runtests.jl
Original file line number Diff line number Diff line change
@@ -1,78 +1,92 @@
### Preparations ###

# Required for `@safetestset` and `@testset`, respectively.
using SafeTestsets, Test
using SafeTestsets, Test, Pkg

# Required for running parallel test groups (copied from ModelingToolkit).
#const GROUP = get(ENV, "GROUP", "All")
const GROUP = get(ENV, "GROUP", "All")

function activate_extensions_env()
Pkg.activate("extensions")
Pkg.develop(PackageSpec(path = dirname(@__DIR__)))
Pkg.instantiate()
end

### Run Tests ###
@time begin
if GROUP == "All" || GROUP == "Core"
# Tests the `ReactionSystem` structure and its properties.
@time @safetestset "Reaction Structure" begin include("reactionsystem_core/reaction.jl") end
@time @safetestset "ReactionSystem Structure" begin include("reactionsystem_core/reactionsystem.jl") end
@time @safetestset "Higher Order Reactions" begin include("reactionsystem_core/higher_order_reactions.jl") end
@time @safetestset "Symbolic Stoichiometry" begin include("reactionsystem_core/symbolic_stoichiometry.jl") end
@time @safetestset "Parameter Type Designation" begin include("reactionsystem_core/parameter_type_designation.jl") end
@time @safetestset "Custom CRN Functions" begin include("reactionsystem_core/custom_crn_functions.jl") end
@time @safetestset "Coupled CRN/Equation Systems" begin include("reactionsystem_core/coupled_equation_crn_systems.jl") end
@time @safetestset "Events" begin include("reactionsystem_core/events.jl") end

# Tests model creation via the @reaction_network DSL.
@time @safetestset "DSL Basic Model Construction" begin include("dsl/dsl_basic_model_construction.jl") end
@time @safetestset "DSL Advanced Model Construction" begin include("dsl/dsl_advanced_model_construction.jl") end
@time @safetestset "DSL Options" begin include("dsl/dsl_options.jl") end

# Tests compositional and hierarchical modelling.
@time @safetestset "ReactionSystem Components Based Creation" begin include("compositional_modelling/component_based_model_creation.jl") end

# Tests various miscellaneous features.
@time @safetestset "API" begin include("miscellaneous_tests/api.jl") end
@time @safetestset "Units" begin include("miscellaneous_tests/units.jl") end
@time @safetestset "Compound Species" begin include("miscellaneous_tests/compound_macro.jl") end
@time @safetestset "Reaction Balancing" begin include("miscellaneous_tests/reaction_balancing.jl") end
@time @safetestset "ReactionSystem Serialisation" begin include("miscellaneous_tests/reactionsystem_serialisation.jl") end

# Tests reaction network analysis features.
@time @safetestset "Conservation Laws" begin include("network_analysis/conservation_laws.jl") end
@time @safetestset "Network Properties" begin include("network_analysis/network_properties.jl") end

# Tests ODE, SDE, jump simulations, nonlinear solving, and steady state simulations.
@time @safetestset "ODE System Simulations" begin include("simulation_and_solving/simulate_ODEs.jl") end
@time @safetestset "Automatic Jacobian Construction" begin include("simulation_and_solving/jacobian_construction.jl") end
@time @safetestset "SDE System Simulations" begin include("simulation_and_solving/simulate_SDEs.jl") end
@time @safetestset "Jump System Simulations" begin include("simulation_and_solving/simulate_jumps.jl") end
@time @safetestset "Nonlinear and SteadyState System Solving" begin include("simulation_and_solving/solve_nonlinear.jl") end

# Tests upstream SciML and DiffEq stuff.
@time @safetestset "MTK Structure Indexing" begin include("upstream/mtk_structure_indexing.jl") end
@time @safetestset "MTK Problem Inputs" begin include("upstream/mtk_problem_inputs.jl") end

# Tests network visualisation.
# @time @safetestset "Latexify" begin include("visualisation/latexify.jl") end
# Disable on Macs as can't install GraphViz via jll
if !Sys.isapple()
@time @safetestset "Graphs Visualisations" begin include("visualisation/graphs.jl") end
end
end

# Tests the `ReactionSystem` structure and its properties.
@time @safetestset "Reaction Structure" begin include("reactionsystem_core/reaction.jl") end
@time @safetestset "ReactionSystem Structure" begin include("reactionsystem_core/reactionsystem.jl") end
@time @safetestset "Higher Order Reactions" begin include("reactionsystem_core/higher_order_reactions.jl") end
@time @safetestset "Symbolic Stoichiometry" begin include("reactionsystem_core/symbolic_stoichiometry.jl") end
@time @safetestset "Parameter Type Designation" begin include("reactionsystem_core/parameter_type_designation.jl") end
@time @safetestset "Custom CRN Functions" begin include("reactionsystem_core/custom_crn_functions.jl") end
@time @safetestset "Coupled CRN/Equation Systems" begin include("reactionsystem_core/coupled_equation_crn_systems.jl") end
@time @safetestset "Events" begin include("reactionsystem_core/events.jl") end

# Tests model creation via the @reaction_network DSL.
@time @safetestset "DSL Basic Model Construction" begin include("dsl/dsl_basic_model_construction.jl") end
@time @safetestset "DSL Advanced Model Construction" begin include("dsl/dsl_advanced_model_construction.jl") end
@time @safetestset "DSL Options" begin include("dsl/dsl_options.jl") end

# Tests compositional and hierarchical modelling.
@time @safetestset "ReactionSystem Components Based Creation" begin include("compositional_modelling/component_based_model_creation.jl") end

# Tests various miscellaneous features.
@time @safetestset "API" begin include("miscellaneous_tests/api.jl") end
@time @safetestset "Units" begin include("miscellaneous_tests/units.jl") end
@time @safetestset "Compound Species" begin include("miscellaneous_tests/compound_macro.jl") end
@time @safetestset "Reaction Balancing" begin include("miscellaneous_tests/reaction_balancing.jl") end
@time @safetestset "ReactionSystem Serialisation" begin include("miscellaneous_tests/reactionsystem_serialisation.jl") end

# Tests reaction network analysis features.
@time @safetestset "Conservation Laws" begin include("network_analysis/conservation_laws.jl") end
@time @safetestset "Network Properties" begin include("network_analysis/network_properties.jl") end

# Tests ODE, SDE, jump simulations, nonlinear solving, and steady state simulations.
@time @safetestset "ODE System Simulations" begin include("simulation_and_solving/simulate_ODEs.jl") end
@time @safetestset "Automatic Jacobian Construction" begin include("simulation_and_solving/jacobian_construction.jl") end
@time @safetestset "SDE System Simulations" begin include("simulation_and_solving/simulate_SDEs.jl") end
@time @safetestset "Jump System Simulations" begin include("simulation_and_solving/simulate_jumps.jl") end
@time @safetestset "Nonlinear and SteadyState System Solving" begin include("simulation_and_solving/solve_nonlinear.jl") end

# Tests upstream SciML and DiffEq stuff.
@time @safetestset "MTK Structure Indexing" begin include("upstream/mtk_structure_indexing.jl") end
@time @safetestset "MTK Problem Inputs" begin include("upstream/mtk_problem_inputs.jl") end

# Tests network visualisation.
# @time @safetestset "Latexify" begin include("visualisation/latexify.jl") end
# Disable on Macs as can't install GraphViz via jll
if !Sys.isapple()
@time @safetestset "Graphs Visualisations" begin include("visualisation/graphs.jl") end
if GROUP == "All" || GROUP == "Spatial"
# Tests spatial modelling and simulations.
@time @safetestset "PDE Systems Simulations" begin include("spatial_modelling/simulate_PDEs.jl") end
@time @safetestset "Spatial Reactions" begin include("spatial_modelling/spatial_reactions.jl") end
@time @safetestset "Lattice Reaction Systems" begin include("spatial_modelling/lattice_reaction_systems.jl") end
@time @safetestset "Spatial Lattice Variants" begin include("spatial_modelling/lattice_reaction_systems_lattice_types.jl") end
@time @safetestset "ODE Lattice Systems Simulations" begin include("spatial_modelling/lattice_reaction_systems_ODEs.jl") end
@time @safetestset "Jump Lattice Systems Simulations" begin include("spatial_modelling/lattice_reaction_systems_jumps.jl") end
@time @safetestset "Lattice Simulation Structure Interfacing" begin include("spatial_modelling/lattice_simulation_struct_interfacing.jl") end
end

# Tests extensions.
@time @safetestset "BifurcationKit Extension" begin include("extensions/bifurcation_kit.jl") end
@time @safetestset "HomotopyContinuation Extension" begin include("extensions/homotopy_continuation.jl") end
# @time @safetestset "Structural Identifiability Extension" begin include("extensions/structural_identifiability.jl") end

# Tests stability computation (uses HomotopyContinuation extension).
@time @safetestset "Steady State Stability Computations" begin include("miscellaneous_tests/stability_computation.jl") end

# Tests spatial modelling and simulations.
@time @safetestset "PDE Systems Simulations" begin include("spatial_modelling/simulate_PDEs.jl") end
@time @safetestset "Spatial Reactions" begin include("spatial_modelling/spatial_reactions.jl") end
@time @safetestset "Lattice Reaction Systems" begin include("spatial_modelling/lattice_reaction_systems.jl") end
@time @safetestset "Spatial Lattice Variants" begin include("spatial_modelling/lattice_reaction_systems_lattice_types.jl") end
@time @safetestset "ODE Lattice Systems Simulations" begin include("spatial_modelling/lattice_reaction_systems_ODEs.jl") end
@time @safetestset "Jump Lattice Systems Simulations" begin include("spatial_modelling/lattice_reaction_systems_jumps.jl") end
@time @safetestset "Lattice Simulation Structure Interfacing" begin include("spatial_modelling/lattice_simulation_struct_interfacing.jl") end
@time @safetestset "Lattice Simulation Plotting" begin include("spatial_modelling/lattice_simulation_plotting.jl") end
if GROUP == "All" || GROUP == "Extensions"
activate_extensions_env()

@time @safetestset "BifurcationKit Extension" begin include("extensions/bifurcation_kit.jl") end
@time @safetestset "HomotopyContinuation Extension" begin include("extensions/homotopy_continuation.jl") end
# @time @safetestset "Structural Identifiability Extension" begin include("extensions/structural_identifiability.jl") end

# Tests stability computation (but requires the HomotopyContinuation extension).
@time @safetestset "Steady State Stability Computations" begin include("extensions/stability_computation.jl") end

# Test spatial plotting, using CarioMakie and GraphMakie
@time @safetestset "Lattice Simulation Plotting" begin include("extensions/lattice_simulation_plotting.jl") end
end

end # @time
Loading