name: Cypress Component on: - pull_request jobs: cypress-component: name: Cypress component tests runs-on: ubuntu-18.04 if: ${{ github.actor != 'posthog-contributions-bot[bot]' }} steps: - name: Checkout uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: node-version: 14 - uses: actions/cache@v2 id: node-modules-cache with: path: | node_modules key: ${{ runner.os }}-node-modules-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-node-modules - name: Yarn install deps if: steps.node-modules-cache.outputs.cache-hit != 'true' run: | yarn install --frozen-lockfile - uses: actions/cache@v2 id: cypress-cache with: path: | ~/.cache/Cypress node_modules/cypress node_modules/cypress-terminal-report node_modules/@cypress key: ${{ runner.os }}-cypress-6.7.0 - name: Install cypress if: steps.cypress-cache.outputs.cache-hit != 'true' run: | yarn add cypress@6.7.0 cypress-terminal-report@2.1.0 @cypress/react@4.16.4 @cypress/webpack-preprocessor@5.7.0 - uses: actions/cache@v1 name: Setup Yarn build cache id: yarn-build-cache with: path: frontend/dist key: ${{ runner.os }}-yarn-build-${{ hashFiles('frontend/src/') }} restore-keys: | ${{ runner.os }}-yarn-build- - name: Yarn build if: steps.yarn-build-cache.outputs.cache-hit != 'true' run: | yarn build - name: Cypress run uses: cypress-io/github-action@v2 with: config-file: cypress.json record: true parallel: true group: 'PostHog Component' # We're already installing cypress above # We have to install it separately otherwise the tests fail. install: false # We already install cypress separately, we don't need to install it again here install-command: echo "no" env: # pass the Dashboard record key as an environment variable CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} # Recommended: pass the GitHub token lets this action correctly # determine the unique run id necessary to re-run the checks GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Archive test screenshots uses: actions/upload-artifact@v1 with: name: screenshots path: cypress/screenshots if: ${{ failure() }}