Skip to content
ci.yml 3.97 KiB
Newer Older
name: CI
on:
  push:
    branches:
      - master
  pull_request:
    paths-ignore:
      - "doc/*.rst"
  schedule:
    - cron: "17 3 * * 0"
  # lint:
  #   name: Lint and typecheck
  #   runs-on: ubuntu-latest
  #   steps:
  #     - uses: actions/checkout@v2
  #     - uses: actions/setup-python@v1
  #       with:
  #         python-version: 3.7
  #     - name: Install Poetry
  #       uses: dschep/install-poetry-action@v1.3
  #     - name: Install Dependencies
  #       run: poetry install
  #     - name: "Flake8"
  #       run: poetry run flake8 relate course accounts tests
  #     - name: "Mypy"
  #       run: poetry run mypy relate course

  # pytest:
  #   name: Python ${{ matrix.python-version }} - ${{ matrix.suite }}
  #   runs-on: ubuntu-latest
  #   strategy:
  #     matrix:
  #       python-version: [3.6, 3.7, 3.8]
  #       suite: ['base', 'postgres', 'expensive']
  #   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
  #   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
  #     - name: Cache python dependencies
  #       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: Install OS dependencies
  #       env:
  #         DEBIAN_FRONTEND: noninteractive
  #       run: |
  #         sudo apt-get install gettext
  #     - name: Run test suite
  #       env:
  #         RL_CI_TEST: ${{ matrix.suite }}
  #       run: |
  #         bash ./.ci/run-tests-for-ci.sh
  #     - name: Upload coverage to Codecov
  #       uses: codecov/codecov-action@v1
  #       with:
  #         fail_ci_if_error: true
  #     - name: Test command line tool
  #       if: matrix.suite == 'base'
  #       run: |
  #         git clone https://github.com/inducer/relate-sample
  #         cd relate-sample
  #         poetry run relate validate .
  #         poetry run relate test-code questions/autograded-python-example.yml
  #         poetry run relate expand-yaml flows/quiz-test.yml > /dev/null
  
  pytest-windows:
    name: Python - Windows
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v1
        with:
          python-version: 3.7
      - name: Install Poetry
        uses: dschep/install-poetry-action@v1.3
        with:
          create_virtualenvs: true
      - name: Confiure Poetry
        run: |
          poetry config virtualenvs.in-project true
      - name: Cache python dependencies
        uses: actions/cache@v1
        id: cache
        with:
          path: .venv
          key: pypoetry-${{ hashFiles('**/poetry.lock') }}-windows
            pypoetry-${{ hashFiles('**/poetry.lock') }}-windows
      - name: Install Dependencies
        run: poetry install
        if: steps.cache.outputs.cache-hit != 'true'
      - name: Run test suite
        env:
          RELATE_LOCAL_TEST_SETTINGS: "local_settings_example.py"
          poetry run pytest --cov-config=setup.cfg --cov-report=xml --cov=.
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v1
        with:
          fail_ci_if_error: true