name: CI on: push: branches: - master pull_request: paths-ignore: - 'doc/*.rst' schedule: - cron: '17 3 * * 0' jobs: flake8: name: Flake8 runs-on: ubuntu-latest strategy: matrix: python-version: [3.7] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: dschep/install-poetry-action@v1.3 with: create_virtualenvs: true - uses: actions/cache@v1 id: cache with: path: ~/.cache/pypoetry/virtualenvs key: pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} restore-keys: | pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} - name: Install Dependencies run: poetry install if: steps.cache.outputs.cache-hit != 'true' - name: "Flake8" run: poetry run flake8 relate course accounts tests mypy: name: Mypy runs-on: ubuntu-latest strategy: matrix: python-version: [3.7] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: dschep/install-poetry-action@v1.3 with: create_virtualenvs: true - uses: actions/cache@v1 id: cache with: path: ~/.cache/pypoetry/virtualenvs key: pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} restore-keys: | pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} - name: Install Dependencies run: poetry install if: steps.cache.outputs.cache-hit != 'true' - name: "Mypy" run: poetry run mypy relate course cmdline: name: Command Line runs-on: ubuntu-latest strategy: matrix: python-version: [3.7] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: dschep/install-poetry-action@v1.3 with: create_virtualenvs: true - uses: actions/cache@v1 id: cache with: path: ~/.cache/pypoetry/virtualenvs key: pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} restore-keys: | pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} - name: Install Dependencies run: poetry install if: steps.cache.outputs.cache-hit != 'true' - name: "Main Script" run: PY_EXE=$(poetry run which python) bash ./test-command-line-tool.sh $(poetry run which python) pytest: name: Pytest on Py${{ matrix.python-version }} runs-on: ubuntu-latest strategy: matrix: python-version: [3.6, 3.7, 3.8] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: dschep/install-poetry-action@v1.3 with: create_virtualenvs: true - uses: actions/cache@v1 id: cache with: path: ~/.cache/pypoetry/virtualenvs key: pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} restore-keys: | pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} - name: Install Dependencies run: poetry install if: steps.cache.outputs.cache-hit != 'true' - name: "Main Script" run: | sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq gettext PY_EXE=$(poetry run which python) RL_CI_TEST=test bash ./run-tests-for-ci.sh - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: fail_ci_if_error: true pytest-pg: name: Pytest Postgres on Py${{ matrix.python-version }} runs-on: ubuntu-latest services: postgres: image: postgres env: POSTGRES_PASSWORD: relatepgpass POSTGRES_DB: test_relate options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 strategy: matrix: python-version: [3.6, 3.7, 3.8] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: dschep/install-poetry-action@v1.3 with: create_virtualenvs: true - uses: actions/cache@v1 id: cache with: path: ~/.cache/pypoetry/virtualenvs key: pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} restore-keys: | pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} - name: Install Dependencies run: poetry install if: steps.cache.outputs.cache-hit != 'true' - name: "Main Script" run: | sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq gettext PY_EXE=$(poetry run which python) RL_CI_TEST=test_postgres bash ./run-tests-for-ci.sh - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: fail_ci_if_error: true pytest_expensive: name: Pytest Expensive on Py${{ matrix.python-version }} runs-on: ubuntu-latest strategy: matrix: python-version: [3.6, 3.7, 3.8] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v1 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: dschep/install-poetry-action@v1.3 with: create_virtualenvs: true - uses: actions/cache@v1 id: cache with: path: ~/.cache/pypoetry/virtualenvs key: pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} restore-keys: | pypoetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }} - name: Install Dependencies run: poetry install if: steps.cache.outputs.cache-hit != 'true' - name: "Main Script" run: | sudo DEBIAN_FRONTEND=noninteractive apt-get install -qq gettext PY_EXE=$(poetry run which python) RL_CI_TEST=test_expensive bash ./run-tests-for-ci.sh - name: Upload coverage to Codecov uses: codecov/codecov-action@v1 with: fail_ci_if_error: true # vim: sw=4