Execute percy demo tests #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Execute percy demo tests | |
on: | |
workflow_dispatch: | |
inputs: | |
dashboardUrl: | |
description: 'Environment to run tests against' | |
required: true | |
default: 'https://staging-demo.saleor.io/' | |
apiUrl: | |
required: true | |
description: 'Environment api to run tests against' | |
default: 'https://staging-demo.saleor.io/graphql/' | |
testsKind: | |
required: true | |
description: 'What kind of tests' | |
type: choice | |
default: "all" | |
options: | |
- "percy" | |
- "functional" | |
- "all" | |
schedule: | |
- cron: '00 2 * * 1-5' | |
repository_dispatch: | |
types: [demo-tests] | |
jobs: | |
cypress-run-tests: | |
runs-on: ubuntu-latest | |
env: | |
TEST_KIND: ${{ github.event.inputs.testsKind || github.event.client_payload.testsKind || 'all'}} | |
container: cypress/browsers:node18.12.0-chrome106-ff106 | |
steps: | |
- name: Get environments urls | |
id: get-env-urls | |
env: | |
DEFAULT_DASHBOARD_URL: 'https://staging-demo.saleor.io/' | |
DEFAULT_API_URL: 'https://staging-demo.saleor.io/graphql/' | |
run: | | |
echo "DASHBOARD_URL=${{ github.event.inputs.dashboardUrl || env.DEFAULT_DASHBOARD_URL }}" >> $GITHUB_OUTPUT | |
echo "API_URL=${{ github.event.inputs.apiUrl || env.DEFAULT_API_URL }}" >> $GITHUB_OUTPUT | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Cache node modules | |
uses: actions/cache@v2 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-percy_demo-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-percy_demo-${{ env.cache-name }}- | |
${{ runner.os }}-percy_demo- | |
${{ runner.os }}- | |
- name: Install Dependencies | |
run: NODE_OPTIONS=--max_old_space_size=4096 npm install | |
- name: Cypress run test percy | |
if: contains(fromJSON('["percy", "all"]'), env.TEST_KIND) | |
continue-on-error: true | |
uses: cypress-io/github-action@v5 | |
env: | |
API_URI: ${{ steps.get-env-urls.outputs.API_URL }} | |
APP_MOUNT_URI: ${{ secrets.APP_MOUNT_URI }} | |
CYPRESS_DEMO_URI: ${{ steps.get-env-urls.outputs.DASHBOARD_URL }} | |
CYPRESS_USER_NAME: admin@example.com | |
CYPRESS_USER_PASSWORD: admin | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
COMMIT_INFO_MESSAGE: Percy - Demo dashboard tests - ${{github.event.inputs.dashboardUrl}} - ${{ steps.get-env-urls.outputs.DASHBOARD_URL }} | |
PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }} | |
CYPRESS_demoTests: true | |
with: | |
group: "UI - Chrome" | |
command: npx percy exec -- npx cypress run --record | |
- name: Cypress run test functional | |
if: contains(fromJSON('["functional", "all"]'), env.TEST_KIND) | |
continue-on-error: true | |
uses: cypress-io/github-action@v5 | |
env: | |
API_URI: ${{ steps.get-env-urls.outputs.API_URL }} | |
APP_MOUNT_URI: ${{ secrets.APP_MOUNT_URI }} | |
CYPRESS_DEMO_URI: ${{ steps.get-env-urls.outputs.DASHBOARD_URL }} | |
CYPRESS_USER_NAME: admin@example.com | |
CYPRESS_USER_PASSWORD: admin | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
COMMIT_INFO_MESSAGE: Demo dashboard tests - ${{github.event.inputs.dashboardUrl}} - ${{ steps.get-env-urls.outputs.DASHBOARD_URL }} | |
CYPRESS_grepTags: "@demo-dashboard" | |
with: | |
group: 'UI - Chrome' | |
record: true |