Initial commit #1
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
# This is a basic continuous integration (CI) workflow to run on every push or pull-request to main. | |
# | |
# It builds the project and runs lint tests, as well as unit tests on Linux, MacOS and Windows. | |
name: CI | |
# Controls when the workflow will run | |
on: | |
# Triggers the workflow on push or pull request events but only for the main branch | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
linter: | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10', '3.11'] | |
os: [ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install project | |
run: make install | |
- name: Install pylint | |
run: pip install pylint>=3.0.3 black>=23.12.1 | |
- name: Run linter | |
run: make lint | |
tests_linux: | |
needs: linter | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10', '3.11'] | |
os: [ubuntu-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install project | |
run: make install | |
- name: Install test dependencies | |
run: pip install pylint>=3.0.3 pytest>=7.4.4 pytest-cov>=4.1.0 black>=23.12.1 | |
- name: Run tests | |
run: make test | |
- name: "Upload coverage to Codecov" | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
# fail_ci_if_error: true | |
tests_mac: | |
needs: linter | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10', '3.11'] | |
os: [macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install project | |
run: make install | |
- name: Install test dependencies | |
run: pip install pylint>=3.0.3 pytest>=7.4.4 pytest-cov>=4.1.0 black>=23.12.1 | |
- name: Run tests | |
run: make test | |
tests_win: | |
needs: linter | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.10', '3.11'] | |
os: [windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Pip | |
run: pip install --user --upgrade pip | |
- name: Install project | |
run: pip install -e .[test] | |
- name: Install test dependencies | |
run: pip install pylint>=3.0.3 pytest>=7.4.4 pytest-cov>=4.1.0 black>=23.12.1 | |
- name: run tests | |
run: pytest -s -vvvv -l --tb=long tests |