name: Tests on: [push, pull_request] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: '3.6' - name: Install requirements run: pip install flake8 pycodestyle - name: Check syntax run: flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics --exclude ckan test: needs: lint strategy: matrix: ckan-version: [2.9, 2.9-py2, 2.8, 2.7] fail-fast: false name: CKAN ${{ matrix.ckan-version }} runs-on: ubuntu-latest container: image: openknowledge/ckan-dev:${{ matrix.ckan-version }} services: solr: image: ckan/ckan-solr-dev:${{ matrix.ckan-version }} postgres: image: ckan/ckan-postgres-dev:${{ matrix.ckan-version }} env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 redis: image: redis:3 steps: - uses: actions/checkout@v2 - name: Install requirements run: | pip install -r pip-requirements.txt pip install -r dev-requirements.txt pip install -e . - name: Setup extension (CKAN >= 2.9) if: ${{ matrix.ckan-version != '2.7' && matrix.ckan-version != '2.8' }} run: | ckan -c test-ga.ini db init ckan -c test-ga.ini harvester initdb - name: Setup extension (CKAN < 2.9) if: ${{ matrix.ckan-version == '2.7' || matrix.ckan-version == '2.8' }} run: | paster --plugin=ckan db init -c test-ga.ini paster --plugin=ckanext-harvest harvester initdb -c test-ga.ini - name: Run tests run: pytest --ckan-ini=test-ga.ini --cov=ckanext.harvest --disable-warnings ckanext/harvest/tests