name: Presto

on: [push, pull_request]

jobs:
  test-postgres-presto:
      runs-on: ubuntu-18.04
      strategy:
        matrix:
          # run unit tests in multiple version just for fun
          python-version: [3.8]
      env:
        PYTHONPATH: ${{ github.workspace }}
        SUPERSET_CONFIG: tests.superset_test_config
        REDIS_PORT: 16379
        SUPERSET__SQLALCHEMY_DATABASE_URI:
          postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
        SUPERSET__SQLALCHEMY_EXAMPLES_URI:
          presto://localhost:15433/memory/default
      services:
        postgres:
          image: postgres:10-alpine
          env:
            POSTGRES_USER: superset
            POSTGRES_PASSWORD: superset
          ports:
            # Use custom ports for services to avoid accidentally connecting to
            # GitHub action runner's default installations
            - 15432:5432
        presto:
          image: prestosql/presto:339
          env:
            POSTGRES_USER: superset
            POSTGRES_PASSWORD: superset
          ports:
            # Use custom ports for services to avoid accidentally connecting to
            # GitHub action runner's default installations
            - 15433:8080
        redis:
          image: redis:5-alpine
          ports:
            - 16379:6379
      steps:
      - uses: actions/checkout@v2
      - name: Setup Python
        uses: actions/setup-python@v2.1.1
        with:
          python-version: ${{ matrix.python-version }}
      - name: Install dependencies
        uses: apache-superset/cached-dependencies@b90713b
        with:
          run: |
            apt-get-install
            pip-upgrade
            pip install -r requirements/testing.txt
            setup-postgres
      - name: Run celery
        run: celery worker --app=superset.tasks.celery_app:app -Ofair -c 2 &
      - name: Python unit tests (PostgreSQL)
        run: |
          ./scripts/python_tests.sh
      - name: Upload code coverage
        run: |
          bash <(curl -s https://codecov.io/bash) -cF python
