Update contributor guide (#478) #1376
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: main | |
# Automatically cancel a previous run. | |
concurrency: | |
group: ${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
run-tests-linux: | |
name: Run tests for ${{ matrix.os }} on ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- '3.9' | |
- '3.10' | |
- '3.11' | |
- '3.12' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: create build environment | |
uses: mamba-org/provision-with-micromamba@main | |
with: | |
environment-file: ./.envs/testenv-linux.yml | |
environment-name: estimagic | |
cache-env: true | |
extra-specs: | | |
python=${{ matrix.python-version }} | |
- name: run pytest | |
shell: bash -l {0} | |
run: | | |
micromamba activate estimagic | |
pytest --cov-report=xml --cov=./ | |
- name: Upload coverage report. | |
if: runner.os == 'Linux' && matrix.python-version == '3.10' | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
run-tests-win-and-mac: | |
name: Run tests for ${{ matrix.os }} on ${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-latest | |
- windows-latest | |
python-version: | |
- '3.9' | |
- '3.10' | |
- '3.11' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: create build environment | |
uses: mamba-org/provision-with-micromamba@main | |
with: | |
environment-file: ./.envs/testenv-others.yml | |
environment-name: estimagic | |
cache-env: true | |
extra-specs: | | |
python=${{ matrix.python-version }} | |
- name: run pytest | |
shell: bash -l {0} | |
run: | | |
micromamba activate estimagic | |
pytest -m "not slow and not jax" | |
run-tests-with-old-pandas: | |
# This job is only for testing if estimagic works with older pandas versions, as | |
# many pandas functions we use will be deprecated in pandas 3. estimagic's behavior | |
# for older verions is handled in src/estimagic/compat.py. | |
name: Run tests for ${{ matrix.os}} on ${{ matrix.python-version }} with pandas 1 | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
python-version: | |
- '3.11' | |
steps: | |
- uses: actions/checkout@v3 | |
- name: create build environment | |
uses: mamba-org/provision-with-micromamba@main | |
with: | |
environment-file: ./.envs/testenv-pandas.yml | |
environment-name: estimagic | |
cache-env: true | |
extra-specs: | | |
python=${{ matrix.python-version }} | |
- name: run pytest | |
shell: bash -l {0} | |
run: | | |
micromamba activate estimagic | |
pytest tests/visualization | |
pytest tests/parameters | |
pytest tests/inference | |
code-in-docs: | |
name: Run code snippets in documentation | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: create build environment | |
uses: mamba-org/provision-with-micromamba@main | |
with: | |
environment-file: ./.envs/testenv-linux.yml | |
environment-name: estimagic | |
cache-env: true | |
extra-specs: python=3.10 | |
- name: run sphinx | |
shell: bash -l {0} | |
run: |- | |
micromamba activate estimagic | |
cd docs/source | |
python -m doctest -v how_to_guides/optimization/how_to_specify_constraints.md |