Add support for CPLEX through the bindings to the C API #184
Workflow file for this run
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: | |
workflow_dispatch: | |
push: | |
branches: [main] | |
paths: ["**.rs", "Cargo.toml", ".github/workflows/rust.yml"] | |
pull_request: | |
branches: [main] | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
# Use a specific job to build with the cplex-rs feature. | |
# This job will run on a self-hosted runner with cplex community edition installed. | |
build-with-cplex: | |
if: vars.docker_hub_private_repo != '' | |
runs-on: ubuntu-latest | |
container: | |
image: ${{ vars.docker_hub_private_repo }}:latest | |
credentials: | |
username: ${{ secrets.docker_hub_username }} | |
password: ${{ secrets.docker_hub_password }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
- name: Build | |
run: cargo build --no-default-features --features cplex-rs | |
- name: Run tests | |
run: cargo test --no-default-features --features cplex-rs | |
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 | |
- 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}" | |
- name: Build | |
# Build with all features enabled, except for cplex-rs | |
# cplex-rs-sys will fail compilation if no installation of cplex can be found | |
run: cargo build --features scip,singlethread-cbc,coin_cbc,highs,lp-solvers,lpsolve,minilp,russcip --tests | |
- name: Run tests # test on a single thread. See: https://github.com/KardinalAI/coin_cbc/issues/9 | |
run: cargo test --features scip,singlethread-cbc,coin_cbc,highs,lp-solvers,lpsolve,minilp,russcip -- --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 | |
- run: cargo bench |