cookiecutter-django/{{cookiecutter.project_slug}}/.github/workflows/test.yaml

59 lines
1.7 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: '{{cookiecutter.python_version}}'
cache: pip
- name: Install dependencies
run: |
pip install pip-tools
pip-sync requirements.txt requirements-dev.txt
- name: Setup pre-commit cache
uses: actions/cache@v3
with:
path: ~/.cache/pre-commit
key: {% raw %}pre-commit-3|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml') }}{% endraw %}
- name: Check pre-commit
run: pre-commit run --show-diff-on-failure --color=always --all-files
- name: Test
run: pytest --cov=. --cov-branch --cov-report term-missing:skip-covered
working-directory: ./src/
auto_merge:
name: Auto merge
runs-on: ubuntu-latest
needs: tests
permissions:
pull-requests: write
contents: write
env:
GH_TOKEN: {% raw %}${{ github.token }}{% endraw %}
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: Checkout
uses: actions/checkout@v3
- name: Auto merge
run: gh pr merge {% raw %}${{github.event.pull_request.number}}{% endraw %} --delete-branch --rebase