add test-actions branch #26
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
name: Check formatting and run tests | |
on: | |
pull_request: | |
branches: | |
- '*' | |
paths: | |
- '**.py' | |
push: | |
branches: | |
- main | |
- test-actions | |
jobs: | |
setup-environment: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.12' | |
- name: Cache Poetry and Virtual Environment | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.poetry | |
.venv | |
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} | |
restore-keys: | | |
poetry-${{ runner.os }}- | |
- name: Install Poetry | |
run: | | |
curl -sSL https://install.python-poetry.org | python3 - | |
echo "$HOME/.poetry/bin" >> $GITHUB_PATH | |
- name: Install dependencies with Poetry | |
run: | | |
poetry install --sync --no-interaction | |
- name: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.poetry | |
.venv | |
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} | |
restore-keys: | | |
poetry-${{ runner.os }}- | |
check-formatting: | |
runs-on: ubuntu-latest | |
needs: setup-environment # Waits for setup-environment to finish | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.12' | |
- name: Restore cached Poetry and Virtual Environment | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.poetry | |
.venv | |
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} | |
restore-keys: | | |
poetry-${{ runner.os }}- | |
- name: Check code formatting with Black | |
run: | | |
poetry run black --check . | |
continue-on-error: false | |
- name: Check imports with isort | |
run: | | |
poetry run isort --check-only . | |
continue-on-error: false | |
env: | |
CI: true | |
run-tests: | |
runs-on: ubuntu-latest | |
needs: | |
- setup-environment # Waits for setup-environment to finish | |
- check-formatting # Also waits for check-formatting to succeed | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.12' | |
- name: Restore cached Poetry and Virtual Environment | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.poetry | |
.venv | |
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} | |
restore-keys: | | |
poetry-${{ runner.os }}- | |
- name: Run tests with pytest | |
run: | | |
poetry run pytest --maxfail=1 --disable-warnings -q |