fix cache #28
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: | |
- '*' # Trigger on pull requests for all branches | |
paths: | |
- '**.py' # Only run on changes to Python files | |
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 dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .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: Configure Poetry to use in-project virtualenv | |
run: | | |
poetry config virtualenvs.in-project true | |
- name: Install dependencies with Poetry | |
run: | | |
poetry install --sync --no-interaction | |
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: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .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: Configure Poetry to use in-project virtualenv | |
run: | | |
poetry config virtualenvs.in-project true | |
- 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: Cache dependencies | |
uses: actions/cache@v3 | |
with: | |
path: .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: Configure Poetry to use in-project virtualenv | |
run: | | |
poetry config virtualenvs.in-project true | |
- name: Run tests with pytest | |
run: | | |
poetry run pytest --maxfail=1 --disable-warnings -q |