#163 Update dependencies #148
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: Build | |
on: [push, pull_request] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] | |
env: | |
MAIN_PYTHON_VERSION: "3.12" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: | | |
poetry install --no-interaction | |
- name: Build cutplace package | |
run: | | |
poetry build | |
- name: Run the test suite | |
run: | | |
poetry run pytest --cov=cutplace --cov-branch | |
- name: Update coveralls | |
if: ${{ matrix.python-version == env.MAIN_PYTHON_VERSION}} | |
env: | |
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
poetry run coveralls | |
check-style: | |
runs-on: ubuntu-latest | |
# Disable pre-commit check on main and production to prevent | |
# pull request merges to fail with "don't commit to branch". | |
if: github.ref != 'refs/heads/main' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install pre-commit | |
run: | | |
sudo apt-get install python3 | |
python -m pip install --upgrade pip | |
pip install pre-commit | |
- name: Load cached pre-commit | |
id: cached-pre-commit | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pre-commit | |
key: pre-commit-${{ runner.os }}-${{ hashFiles('.pre-commit-config.yaml') }} | |
- name: Install pre-commit hooks | |
if: steps.cached-pre-commit.outputs.cache-hit != 'true' | |
run: pre-commit install --install-hooks | |
- name: Check coding style | |
run: pre-commit run --all-files |