name: E2E

on: [push, pull_request]

jobs:
  Cypress:
    runs-on: ubuntu-18.04
    strategy:
      fail-fast: true
      matrix:
        browser: ['chrome']
    env:
      FLASK_ENV: development
      ENABLE_REACT_CRUD_VIEWS: true
      SUPERSET_CONFIG: tests.superset_test_config
      SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
      PYTHONPATH: ${{ github.workspace }}
      REDIS_PORT: 16379
      GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    services:
      postgres:
        image: postgres:10-alpine
        env:
          POSTGRES_USER: superset
          POSTGRES_PASSWORD: superset
        ports:
          - 15432:5432
      redis:
        image: redis:5-alpine
        ports:
          - 16379:6379
    steps:
    - name: Checkout code
      uses: actions/checkout@v2
    - name: Setup Python
      uses: actions/setup-python@v2.1.1
      with:
        python-version: '3.7'
    - name: OS dependencies
      uses: apache-superset/cached-dependencies@b90713b
      with:
        run: |
          apt-get-install
    - name: Install python dependencies
      uses: apache-superset/cached-dependencies@b90713b
      with:
        run: |
          pip-upgrade
          pip install -r requirements/testing.txt
    - name: Setup postgres
      uses: apache-superset/cached-dependencies@b90713b
      with:
        run: |
          setup-postgres
    - name: Import test data
      uses: apache-superset/cached-dependencies@b90713b
      with:
        run: |
          testdata
    - name: Install npm dependencies
      uses: apache-superset/cached-dependencies@b90713b
      with:
        run: |
          npm-install
    - name: Build javascript packages
      uses: apache-superset/cached-dependencies@b90713b
      with:
        run: |
          build-instrumented-assets
    - name: Install cypress
      uses: apache-superset/cached-dependencies@b90713b
      with:
        run: |
          cypress-install
    - name: Run Cypress
      uses: apache-superset/cached-dependencies@b90713b
      env:
        CYPRESS_BROWSER: ${{ matrix.browser }}
        CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
      with:
        run: cypress-run-all
