--- /dev/null
+name: Documentation
+
+on:
+ push:
+ branches: [ master ]
+ paths:
+ - 'docs/**'
+ pull_request:
+ branches: [ master ]
+ paths-ignore:
+ - 'docs/**'
+
+jobs:
+ spelling:
+ name: Spellcheck
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install system packages
+ run: |
+ sudo apt update
+ sudo apt install enchant hunspell aspell-en
+ - name: Install Dependencies
+ run: pip3 install --no-use-pep517 -Ur docs/requirements.txt
+ - name: Spellcheck docs
+ run: make spelling
+ working-directory: ./docs
+ - name:
+ run: '[ ! -s _build/spelling/output.txt ]'
+ working-directory: ./docs
+
+ linkcheck:
+ name: Linkcheck
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install Dependencies
+ run: pip3 install --no-use-pep517 -Ur docs/requirements.txt
+ - name: Linkcheck docs
+ run: make linkcheck
+ working-directory: ./docs
--- /dev/null
+name: Code Style
+
+on:
+ push:
+ branches: [ master ]
+ paths-ignore:
+ - 'src/byro/locale/**'
+ - 'src/byro/static/**'
+ - 'docs/**'
+ pull_request:
+ branches: [ master ]
+ paths-ignore:
+ - 'src/byro/locale/**'
+ - 'src/byro/static/**'
+ - 'docs/**'
+
+jobs:
+ isort:
+ name: isort
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install Dependencies
+ run: pip3 install --no-use-pep517 -Ue "src[dev]"
+ - name: Run isort
+ run: isort -c .
+ working-directory: ./src
+ flake:
+ name: flake8
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install Dependencies
+ run: pip3 install --no-use-pep517 -Ue "src[dev]"
+ - name: Run flake8
+ run: flake8 .
+ working-directory: ./src
+ black:
+ name: black
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install Dependencies
+ run: pip3 install --no-use-pep517 -Ue "src[dev]"
+ - name: Run black
+ run: black --check .
+ working-directory: ./src
+ docformatter:
+ name: docformatter
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install Dependencies
+ run: pip3 install --no-use-pep517 -Ue "src[dev]"
+ - name: Run docformatter
+ run: docformatter --check -r .
+ working-directory: ./src
+ packaging:
+ name: packaging
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python 3.8
+ uses: actions/setup-python@v1
+ with:
+ python-version: 3.8
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install Dependencies
+ run: pip3 install --no-use-pep517 twine -Ue "src[dev]"
+ - name: Run check-manifest
+ run: check-manifest .
+ working-directory: ./src
+ - name: Build package
+ run: python setup.py sdist
+ working-directory: ./src
+ - name: Check package
+ run: twine check dist/*
+ working-directory: ./src
--- /dev/null
+name: Tests
+
+on:
+ push:
+ branches: [ master ]
+ paths-ignore:
+ - 'docs/**'
+ - 'src/byro/locale/**'
+ pull_request:
+ branches: [ master ]
+ paths-ignore:
+ - 'docs/**'
+ - 'src/byro/locale/**'
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ name: Tests
+ strategy:
+ matrix:
+ python-version: [3.6, 3.7, 3.8]
+ steps:
+ - uses: actions/checkout@v2
+ - uses: harmon758/postgresql-action@v1
+ with:
+ postgresql version: '11'
+ postgresql db: 'byro'
+ postgresql user: 'postgres'
+ postgresql password: 'postgres'
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v1
+ with:
+ python-version: ${{ matrix.python-version }}
+ - uses: actions/cache@v1
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+ - name: Install system dependencies
+ run: |
+ sudo apt update
+ sudo apt install gettext
+ - name: Install Python dependencies
+ run: pip3 install -Ue "src[dev]" --no-use-pep517
+ - name: Run checks
+ run: python manage.py check --deploy
+ working-directory: ./src
+ - name: Compile locales
+ run: python manage.py compilemessages
+ working-directory: ./src
+ - name: Run tests
+ working-directory: ./src
+ run: BYRO_CONFIG_FILE=tests/byro.cfg py.test --cov=./ --cov-report=xml tests --maxfail=100
+ - name: Upload coverage
+ uses: codecov/codecov-action@v1
+ with:
+ file: src/coverage.xml
+ fail_ci_if_error: true
+ if: matrix.python-version == '3.8'