name: Lint and test on: push: branches: ["**"] pull_request: branches: [master] jobs: test: name: Test on ${{ matrix.python_version }} runs-on: ubuntu-latest strategy: matrix: python_version: ["3.9", "3.10", "3.11", "3.12", "3.13"] fail-fast: false steps: - uses: actions/checkout@v5 - name: Set up Python ${{ matrix.python_version }} uses: actions/setup-python@v6 with: python-version: ${{ matrix.python_version }} - name: Install poetry uses: abatilo/actions-poetry@v4 with: poetry-version: "2.1.2" - name: Configure poetry run: | poetry config virtualenvs.create true --local poetry config virtualenvs.in-project true --local - uses: actions/cache@v4 name: Define a cache for the virtual environment based on the dependencies lock file with: path: ./.venv key: ${{ runner.os }}-python-${{ env.pythonLocation }}-${{ hashFiles('poetry.lock') }}-venv - name: Install build dependencies run: sudo apt install -y libxml2-dev libxslt-dev - name: Install Dependencies run: poetry install - name: Lint with black run: | # stop the build if there are Python syntax errors or undefined names poetry run black --check --diff pandas_ods_reader/ tests/ - name: Test with pytest run: | poetry run pytest tests/