validate-pyproject pyproject.toml && pyproject-fmt pyproject.toml #190
Workflow file for this run
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 workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Python package | |
on: | |
push: | |
branches: | |
- main | |
- master | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
experimental: [ false ] | |
monty-storage: [ memory, flatfile, sqlite ] | |
mongodb-version: [ "3.6", "4.0", "4.2" ] | |
python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11", "3.12" ] | |
include: | |
# run lmdb tests as experimental due to the seg fault in GitHub | |
# action is not reproducible on my Windows and Mac. | |
- experimental: true | |
monty-storage: lightning | |
mongodb-version: "4.0" | |
python-version: "3.7" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up MongoDB ${{ matrix.mongodb-version }} | |
uses: supercharge/mongodb-github-action@1.11.0 | |
with: | |
mongodb-version: ${{ matrix.mongodb-version }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Setup Poetry 1.3 | |
uses: abatilo/actions-poetry@v3 | |
with: | |
poetry-version: "1.3" | |
- name: Install dependencies via poetry | |
run: make install | |
- name: Test with pytest (${{ matrix.monty-storage }}) | |
continue-on-error: ${{ matrix.experimental }} | |
run: > | |
poetry run pytest --storage ${{ matrix.monty-storage }} | |
- name: Test with pytest (${{ matrix.monty-storage }} + bson) | |
continue-on-error: ${{ matrix.experimental }} | |
run: > | |
poetry run pytest --storage ${{ matrix.monty-storage }} --use-bson | |
- name: Lint with flake8 | |
run: make lint | |
- name: Find typos with codespell | |
run: make codespell | |
- name: Run static analysis with bandit | |
run: make bandit |