add wasm support (#63) #213
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust | |
on: | |
push: | |
branches: [main] | |
paths: ["**.rs", "Cargo.toml", ".github/workflows/rust.yml"] | |
pull_request: | |
branches: [main] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: rustfmt | |
- uses: Swatinem/rust-cache@v2 | |
- name: Check formatting | |
run: cargo fmt -- --check | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
activate-environment: test | |
allow-softlinks: true | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
- name: install deps | |
run: | | |
sudo apt-get install coinor-cbc coinor-libcbc-dev libgsl-dev | |
# Install SCIP | |
conda install -y --prefix $CONDA/envs/test --channel conda-forge scip | |
echo "LD_LIBRARY_PATH=$CONDA/envs/test/lib" >> "${GITHUB_ENV}" | |
echo "DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:$CONDA/envs/test/lib" >> "${GITHUB_ENV}" | |
echo "PATH=$CONDA/envs/test/bin:$PATH" >> "${GITHUB_ENV}" | |
echo "CONDA_PREFIX=$CONDA/envs/test" >> "${GITHUB_ENV}" | |
# install CPLEX | |
curl -LO https://github.com/rust-or/good_lp/releases/download/cplex/cplex.bin | |
chmod u+x cplex.bin | |
./cplex.bin -f ./.github/cplex/response.properties | |
# Install wasm-pack | |
cargo install wasm-pack | |
- name: Build with all default solvers (no cplex) | |
run: cargo build --features all_default_solvers --tests | |
- name: Run tests with all default solvers (no cplex) | |
# test on a single thread. See: https://github.com/KardinalAI/coin_cbc/issues/9 | |
run: cargo test --features all_default_solvers -- --test-threads=1 | |
- name: Run tests with minilp | |
run: cargo test --no-default-features --features minilp | |
- name: Run tests with lpsolve | |
run: cargo test --no-default-features --features lpsolve | |
- name: Run tests with highs | |
run: cargo test --no-default-features --features highs | |
- name: Run tests with lp_solvers | |
run: cargo test --no-default-features --features lp-solvers | |
- name: Run tests with SCIP | |
run: cargo test --no-default-features --features scip | |
- name: Run tests with CPLEX | |
run: cargo test --no-default-features --features cplex-rs | |
- name: Run tests with Clarabel | |
run: cargo test --no-default-features --features clarabel | |
- name: Run tests with Clarabel on WASM | |
run: wasm-pack test --node --no-default-features --features "clarabel,clarabel-wasm" | |
- name: Run tests with minilp on WASM | |
run: wasm-pack test --node --no-default-features --features "minilp" | |
- run: cargo bench |