name: E2E on: push: branches-ignore: - "dependabot/**/docs/**" paths-ignore: - "docs/**" pull_request: jobs: cypress-matrix: runs-on: ubuntu-20.04 strategy: # when one test fails, DO NOT cancel the other # containers, because this will kill Cypress processes # leaving the Dashboard hanging ... # https://github.com/cypress-io/github-action/issues/48 fail-fast: false matrix: containers: [1, 2, 3] 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 (push) if: github.event_name == 'push' uses: actions/checkout@v2 - name: Checkout code (pull_request) if: github.event_name == 'pull_request' || github.event_name == 'pull_request_target' uses: actions/checkout@v2 with: ref: "refs/pull/${{ github.event.number }}/merge" - name: Setup Python uses: actions/setup-python@v2 with: python-version: "3.7" - name: OS dependencies uses: ./.github/actions/cached-dependencies with: run: | apt-get-install - name: Install python dependencies uses: ./.github/actions/cached-dependencies with: run: | pip-upgrade pip install -r requirements/testing.txt - name: Setup postgres uses: ./.github/actions/cached-dependencies with: run: | setup-postgres - name: Import test data uses: ./.github/actions/cached-dependencies with: run: | testdata - name: Install npm dependencies uses: ./.github/actions/cached-dependencies with: run: | npm-install - name: Build javascript packages uses: ./.github/actions/cached-dependencies with: run: | build-instrumented-assets - name: Install cypress uses: ./.github/actions/cached-dependencies with: run: | cypress-install - name: Run Cypress uses: ./.github/actions/cached-dependencies env: CYPRESS_BROWSER: ${{ matrix.browser }} CYPRESS_KEY: YjljODE2MzAtODcwOC00NTA3LWE4NmMtMTU3YmFmMjIzOTRhCg== with: run: cypress-run-all - name: Upload Artifacts uses: actions/upload-artifact@v2 if: failure() with: name: screenshots path: ${{ github.workspace }}/superset-frontend/cypress-base/cypress/screenshots Cypress: if: ${{ always() }} name: Cypress (chrome) runs-on: ubuntu-20.04 needs: cypress-matrix steps: - name: Check build matrix status if: ${{ needs.cypress-matrix.result != 'success' }} run: exit 1