# Python Presto/Hive unit tests name: Python Presto/Hive on: push: branches-ignore: - "dependabot/npm_and_yarn/**" pull_request: types: [synchronize, opened, reopened, ready_for_review] jobs: test-postgres-presto: if: github.event.pull_request.draft == false runs-on: ubuntu-20.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: starburstdata/presto:350-e.6 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: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v2 with: persist-credentials: false submodules: recursive - name: Check if python changes are present id: check env: GITHUB_REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }} continue-on-error: true run: ./scripts/ci_check_no_file_changes.sh python - name: Setup Python if: steps.check.outcome == 'failure' uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies if: steps.check.outcome == 'failure' uses: ./.github/actions/cached-dependencies with: run: | apt-get-install pip-upgrade pip install -r requirements/testing.txt setup-postgres - name: Run celery if: steps.check.outcome == 'failure' run: celery worker --app=superset.tasks.celery_app:app -Ofair -c 2 & - name: Python unit tests (PostgreSQL) if: steps.check.outcome == 'failure' run: | ./scripts/python_tests.sh - name: Upload code coverage if: steps.check.outcome == 'failure' run: | bash <(curl -s https://codecov.io/bash) -c -F python -F presto test-postgres-hive: if: github.event.pull_request.draft == false runs-on: ubuntu-20.04 strategy: matrix: # run unit tests in multiple version just for fun python-version: [3.7, 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: hive://localhost:10000/default UPLOAD_FOLDER: /tmp/.superset/uploads/ 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 redis: image: redis:5-alpine ports: - 16379:6379 steps: - name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )" uses: actions/checkout@v2 with: persist-credentials: false submodules: recursive - name: Check if python changes are present id: check env: GITHUB_REPO: ${{ github.repository }} PR_NUMBER: ${{ github.event.pull_request.number }} continue-on-error: true run: ./scripts/ci_check_no_file_changes.sh python - name: Create csv upload directory if: steps.check.outcome == 'failure' run: sudo mkdir -p /tmp/.superset/uploads - name: Give write access to the csv upload directory if: steps.check.outcome == 'failure' run: sudo chown -R $USER:$USER /tmp/.superset - name: Start hadoop and hive if: steps.check.outcome == 'failure' run: docker-compose -f scripts/databases/hive/docker-compose.yml up -d - name: Setup Python if: steps.check.outcome == 'failure' uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies if: steps.check.outcome == 'failure' uses: ./.github/actions/cached-dependencies with: run: | apt-get-install pip-upgrade pip install -r requirements/testing.txt setup-postgres - name: Run celery if: steps.check.outcome == 'failure' run: celery worker --app=superset.tasks.celery_app:app -Ofair -c 2 & - name: Python unit tests (PostgreSQL) if: steps.check.outcome == 'failure' run: | ./scripts/python_tests.sh - name: Upload code coverage if: steps.check.outcome == 'failure' run: | bash <(curl -s https://codecov.io/bash) -c -F python -F hive