Skip to content
ci.yml 6.5 KiB
Newer Older
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]
            - uses: actions/checkout@v2
            - uses: actions/setup-python@v1
              with:
                  python-version: ${{ matrix.python-version }}
Josh Asplund's avatar
Josh Asplund committed
            - name: Install Poetry
              uses: dschep/install-poetry-action@v1.3
              with:
                  create_virtualenvs: true
            - uses: actions/cache@v1
Josh Asplund's avatar
Josh Asplund committed
              id: cache
Josh Asplund's avatar
Josh Asplund committed
                  path: ~/.virtualenvs
                  key: poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
                  restore-keys: |
                      poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
Josh Asplund's avatar
Josh Asplund committed
            - name: Set Poetry config
              run: |
                  poetry config virtualenvs.in-project false
                  poetry config virtualenvs.path ~/.virtualenvs
Josh Asplund's avatar
Josh Asplund committed
            - 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]
            - uses: actions/checkout@v2
            - uses: actions/setup-python@v1
              with:
                  python-version: ${{ matrix.python-version }}
Josh Asplund's avatar
Josh Asplund committed
            - name: Install Poetry
              uses: dschep/install-poetry-action@v1.3
              with:
                  create_virtualenvs: true
            - uses: actions/cache@v1
Josh Asplund's avatar
Josh Asplund committed
              id: cache
Josh Asplund's avatar
Josh Asplund committed
                  path: ~/.virtualenvs
                  key: poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
                  restore-keys: |
                      poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
Josh Asplund's avatar
Josh Asplund committed
            - name: Set Poetry config
              run: |
                  poetry config virtualenvs.in-project false
                  poetry config virtualenvs.path ~/.virtualenvs
Josh Asplund's avatar
Josh Asplund committed
            - 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]
            - uses: actions/checkout@v2
            - uses: actions/setup-python@v1
              with:
                  python-version: ${{ matrix.python-version }}
Josh Asplund's avatar
Josh Asplund committed
            - name: Install Poetry
              uses: dschep/install-poetry-action@v1.3
              with:
                  create_virtualenvs: true
            - uses: actions/cache@v1
Josh Asplund's avatar
Josh Asplund committed
              id: cache
Josh Asplund's avatar
Josh Asplund committed
                  path: ~/.virtualenvs
                  key: poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
                  restore-keys: |
                      poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
Josh Asplund's avatar
Josh Asplund committed
            - name: Set Poetry config
              run: |
                  poetry config virtualenvs.in-project false
                  poetry config virtualenvs.path ~/.virtualenvs
Josh Asplund's avatar
Josh Asplund committed
            - name: Install Dependencies
              run: poetry install
              if: steps.cache.outputs.cache-hit != 'true'
            - name: "Main Script"
Josh Asplund's avatar
Josh Asplund committed
              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 }}
Josh Asplund's avatar
Josh Asplund committed
        - name: Install Poetry
          uses: dschep/install-poetry-action@v1.3
          with:
              create_virtualenvs: true
        - uses: actions/cache@v1
          id: cache
          with:
              path: ~/.virtualenvs
              key: poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
              restore-keys: |
                  poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
        - name: Set Poetry config
          run: |
              poetry config virtualenvs.in-project false
              poetry config virtualenvs.path ~/.virtualenvs
Josh Asplund's avatar
Josh Asplund committed
        - name: Install Dependencies
          run: poetry install
          if: steps.cache.outputs.cache-hit != 'true'
        - name: "Main Script"
          run: |
              sudo apt-get -qq install -y 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

    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:
Josh Asplund's avatar
Josh Asplund committed
        - 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: ~/.virtualenvs
              key: poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
              restore-keys: |
                  poetry-${{ hashFiles('**/poetry.lock') }}-${{ matrix.python-version }}
        - name: Set Poetry config
          run: |
              poetry config virtualenvs.in-project false
              poetry config virtualenvs.path ~/.virtualenvs
Josh Asplund's avatar
Josh Asplund committed
        - name: Install Dependencies
          run: poetry install
          if: steps.cache.outputs.cache-hit != 'true'
Josh Asplund's avatar
Josh Asplund committed
        - name: "Main Script"
          run: |
              sudo apt-get -qq install -y gettext
Josh Asplund's avatar
Josh Asplund committed
              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