Unit Tests #317
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: Unit Tests | |
on: # NOLINT | |
pull_request: | |
push: | |
schedule: | |
- cron: '0 10 * * MON' | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest, ubuntu-20.04, ubuntu-22.04, windows-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- uses: actions/cache@v3 | |
if: startsWith(runner.os, 'Linux') | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- uses: actions/cache@v3 | |
if: startsWith(runner.os, 'macOS') | |
with: | |
path: ~/Library/Caches/pip | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- uses: actions/cache@v3 | |
if: startsWith(runner.os, 'Windows') | |
with: | |
path: ~\AppData\Local\pip\Cache | |
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
restore-keys: | | |
${{ runner.os }}-pip- | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install --upgrade setuptools | |
python -m pip install --upgrade wheel | |
python -m pip install --upgrade coverage | |
python -m pip install --upgrade mypy | |
python -m pip install --upgrade types-docutils | |
python -m pip install --upgrade tox | |
python -m pip install --upgrade tox-gh-actions | |
python -m pip install --upgrade virtualenv | |
# Have to install newer version from non-apt source due to SSL library compatibility issues. | |
- name: Install Node and node-based tools (Linux) | |
if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-22.04' | |
run: | | |
npm install -g markdownlint-cli | |
npm install -g write-good | |
- name: Mypy | |
run: | | |
mypy --ignore-missing-imports --strict src/ | |
- name: Tox | |
run: | | |
python -m tox | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
fail_ci_if_error: false | |
- name: Statick Documentation | |
if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-22.04' | |
uses: sscpac/[email protected] | |
with: | |
profile: documentation.yaml | |
timings: true | |
- name: Self check | |
if: matrix.os == 'ubuntu-20.04' || matrix.os == 'ubuntu-22.04' | |
uses: sscpac/[email protected] | |
with: | |
profile: self_check.yaml | |
timings: true |