diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml new file mode 100644 index 00000000..55870dbc --- /dev/null +++ b/.github/workflows/python-package.yml @@ -0,0 +1,58 @@ +--- +name: CI + +on: + push: + branches: ["main","github-actions"] + pull_request: + branches: ["main"] + workflow_dispatch: + +jobs: + tests: + name: "Python ${{ matrix.python-version }}" + runs-on: "ubuntu-latest" + + strategy: + matrix: + # python-version: ["3.7", "3.8", "3.9"] + python-version: ["3.8", "3.9", "3.10"] + + steps: + - uses: "actions/checkout@v2" + - uses: "actions/setup-python@v2" + - uses: "s-weigand/setup-conda@v1" + with: + python-version: "${{ matrix.python-version }}" + + - name: Install solvers + run: sudo apt-get install -y glpk-utils coinor-cbc + + - name: "Install dependencies" + run: | + set -xe + python -VV + python -m site + python -m pip install --upgrade pip setuptools wheel + python -m pip install --upgrade coverage[toml] virtualenv tox tox-gh-actions + conda install -c conda-forge ipopt + conda install -c conda-forge pyscipopt + + - name: "Run tox targets with lean testing environment for ${{ matrix.python-version }}" + run: "tox -re leanenv" + + - name: "Run tox targets for ${{ matrix.python-version }}" + run: "tox" + + # - name: "Run tox notebooks targets for ${{ matrix.python-version }}" + # run: | + # shopt -s globstar + # tox -e notebooks docs/**/*.ipynb + + - name: "Convert coverage" + run: "python -m coverage xml" + + - name: "Upload coverage to Codecov" + uses: "codecov/codecov-action@v2" + with: + fail_ci_if_error: true