diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 5981a9a..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Test -on: push -jobs: - build: - runs-on: self-hosted - steps: - - uses: actions/checkout@v1 - - name: Run tests - run: | - rm -rf ~/.conda/envs/miplearn-test - yes | conda create --name miplearn-test python=3.6 - (cd /opt/gurobi900/linux64 && ~/.conda/envs/miplearn-test/bin/python setup.py install) - (cd /opt/cplex-12.8/cplex/python/3.6/x86-64_linux && ~/.conda/envs/miplearn-test/bin/python setup.py install) - make install test \ - PYTHON=~/.conda/envs/miplearn-test/bin/python \ - PIP=~/.conda/envs/miplearn-test/bin/pip3 \ - PYTEST=~/.conda/envs/miplearn-test/bin/pytest - diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..80c757a --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,27 @@ +name: Test +on: [push, pull_request] +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.6, 3.7, 3.8] + + steps: + - name: Check out source code + uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -i https://pypi.gurobi.com gurobipy + pip install -r requirements.txt + + - name: Test with pytest + run: | + pytest \ No newline at end of file diff --git a/miplearn/problems/tests/test_tsp.py b/miplearn/problems/tests/test_tsp.py index 9d565d6..6736a4d 100644 --- a/miplearn/problems/tests/test_tsp.py +++ b/miplearn/problems/tests/test_tsp.py @@ -32,7 +32,7 @@ def test_instance(): [1., 2., 1., 0.], ]) instance = TravelingSalesmanInstance(n_cities, distances) - for solver_name in ['gurobi', 'cplex']: + for solver_name in ['gurobi']: solver = LearningSolver(solver=solver_name) solver.solve(instance) x = instance.solution["x"] @@ -58,7 +58,7 @@ def test_subtour(): ]) distances = squareform(pdist(cities)) instance = TravelingSalesmanInstance(n_cities, distances) - for solver_name in ['gurobi', 'cplex']: + for solver_name in ['gurobi']: solver = LearningSolver(solver=solver_name) solver.solve(instance) assert hasattr(instance, "found_violated_lazy_constraints") diff --git a/miplearn/solvers/tests/__init__.py b/miplearn/solvers/tests/__init__.py index 870fa8f..74b35bc 100644 --- a/miplearn/solvers/tests/__init__.py +++ b/miplearn/solvers/tests/__init__.py @@ -2,7 +2,7 @@ # Copyright (C) 2020, UChicago Argonne, LLC. All rights reserved. # Released under the modified BSD license. See COPYING.md for more details. -from miplearn import BasePyomoSolver, GurobiSolver, GurobiPyomoSolver, CplexPyomoSolver +from miplearn import BasePyomoSolver, GurobiSolver, GurobiPyomoSolver from miplearn.problems.knapsack import KnapsackInstance, GurobiKnapsackInstance @@ -23,4 +23,4 @@ def _get_instance(solver): def _get_internal_solvers(): - return [GurobiPyomoSolver, CplexPyomoSolver, GurobiSolver] + return [GurobiPyomoSolver, GurobiSolver]