charasheet/.github/workflows/test.yaml

56 lines
1.5 KiB
YAML

name: Test
on:
workflow_dispatch:
workflow_call:
pull_request:
branches: [ "master" ]
permissions:
contents: read
jobs:
tests:
name: Python tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: pip
- name: Install dependencies
run: |
pip install pip-tools
pip-sync requirements.txt requirements-dev.txt
- name: Ruff
run: ruff --format=github .
- name: Test
run: pytest --cov=. --cov-branch --cov-report term-missing:skip-covered
working-directory: ./src/
- name: Setup pre-commit cache
uses: actions/cache@v3
with:
path: ~/.cache/pre-commit
key: pre-commit-3|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}
- name: Check pre-commit
run: pre-commit run --show-diff-on-failure --color=always --all-files
auto_merge:
name: Auto merge
runs-on: ubuntu-latest
needs: tests
env:
GH_TOKEN: ${{ github.token }}
if: >-
github.event.pull_request
&& github.event.pull_request.merged == false
&& (
github.event.pull_request.user.login == 'crocmagnon-pr[bot]'
|| github.event.pull_request.user.login == 'pre-commit-ci[bot]'
)
steps:
- name: Auto merge
run: gh pr merge ${{github.event.pull_request.number}} --delete-branch --rebase