mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-14 18:28:32 +02:00
- loosen the test dep requirements (so we get warned about these problems sooner) - add new extras group to provide minimal deps required for testing (we don't need to run static analysis again on every version)
92 lines
2.5 KiB
YAML
92 lines
2.5 KiB
YAML
name: Testing
|
|
|
|
on:
|
|
push:
|
|
branches: [ develop, release ]
|
|
paths:
|
|
- 'jrnl/**'
|
|
- 'features/**'
|
|
- 'tests/**'
|
|
- 'poetry.lock'
|
|
- 'pyproject.toml'
|
|
pull_request:
|
|
branches: [ develop ]
|
|
paths:
|
|
- 'jrnl/**'
|
|
- 'features/**'
|
|
- 'tests/**'
|
|
- 'poetry.lock'
|
|
- 'pyproject.toml'
|
|
|
|
jobs:
|
|
test:
|
|
if: >
|
|
! contains(github.event.head_commit.message, '[ci skip]')
|
|
runs-on: ${{ matrix.os }}
|
|
continue-on-error: ${{ matrix.python-version == '3.10-dev' }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
python-version: [ 3.7, 3.8, 3.9, 3.10-dev ]
|
|
os: [ ubuntu-latest, macos-latest, windows-latest ]
|
|
|
|
steps:
|
|
- run: git config --global core.autocrlf false
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: poetry cache
|
|
uses: actions/cache@v2
|
|
with:
|
|
path: .venv
|
|
key: ${{ runner.os }}-${{ hashFiles('poetry.lock') }}-${{ matrix.python-version }}-v2
|
|
|
|
- name: Install dependencies
|
|
if: ${{ matrix.python-version != '3.10-dev' }}
|
|
run: |
|
|
echo '::group::poetry'
|
|
pip install poetry
|
|
poetry config --local virtualenvs.in-project true
|
|
echo '::endgroup::'
|
|
|
|
echo '::group::Other dependencies'
|
|
poetry install --remove-untracked
|
|
echo '::endgroup::'
|
|
|
|
|
|
- name: Install dependencies (Prerelease)
|
|
if: ${{ matrix.python-version == '3.10-dev' }}
|
|
run: |
|
|
echo '::group::poetry'
|
|
pip install poetry==1.2.0a1
|
|
poetry config --local virtualenvs.in-project true
|
|
echo '::endgroup::'
|
|
|
|
echo '::group::Other dependencies'
|
|
poetry install --remove-untracked --no-dev --extras testing
|
|
echo '::endgroup::'
|
|
|
|
|
|
- name: Code formatting (Black)
|
|
if: ${{ matrix.python-version != '3.10-dev' }} && (success() || failure())
|
|
run: |
|
|
poetry run black --version
|
|
poetry run black --check --diff .
|
|
|
|
- name: Code Style (flake8)
|
|
if: ${{ matrix.python-version != '3.10-dev' }} && (success() || failure())
|
|
run: |
|
|
poetry run pflake8 --version
|
|
poetry run pflake8 jrnl features tests
|
|
|
|
- name: Test with pytest
|
|
if: success() || failure()
|
|
run: poetry run pytest --junitxml=reports/pytest/results.xml
|
|
|
|
- name: Test with behave
|
|
if: success() || failure()
|
|
run: poetry run behave --no-skipped --format progress2 --junit --junit-directory reports/behave
|