Skip to content

move wp version check to after npm setup steps so we know its also th… #2751

move wp version check to after npm setup steps so we know its also th…

move wp version check to after npm setup steps so we know its also th… #2751

Workflow file for this run

name: Cypress Tests
on:
push:
branches:
- main
- master
- trunk
- develop
- release/*
- feature/*
- add/*
- update/*
- fix/*
- try/*
pull_request:
types: [ opened, edited, reopened, ready_for_review ]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true
jobs:
test:
name: Run Cypress Tests
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
coverage: none
tools: composer, cs2pr
- name: Setup workflow context
id: workflow
working-directory: ${{ runner.temp }}
env:
REPO: ${{ github.repository }}
run: |
mkdir dist
echo "DIST=${PWD}/dist" >> $GITHUB_OUTPUT
echo "PACKAGE=${REPO##*/}" >> $GITHUB_OUTPUT
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'npm'
- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache Composer vendor directory
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Show versions
run: |
php --version
composer --version
node --version
npm --version
- name: Validate composer.json and composer.lock
run: composer validate
- name: Install PHP Dependencies
run: composer install --no-progress --no-dev --optimize-autoloader --prefer-dist
- name: Setup Registry
run: printf "\n//npm.pkg.github.com/:_authToken=${{ secrets.NEWFOLD_ACCESS_TOKEN }}" >> .npmrc
- name: NPM Install
run: npm install --legacy-peer-deps
- name: Build JavaScript
run: npm run build
- name: Create Distribution Copy
run: rsync -r --include-from=.distinclude --exclude-from=.distignore . ${{ steps.workflow.outputs.DIST }}/${{ steps.workflow.outputs.PACKAGE }}
- name: List Distribution Files
working-directory: ${{ steps.workflow.outputs.DIST }}
run: find .
- name: Configure WordPress
run: echo '{"plugins":["${{ steps.workflow.outputs.DIST }}/${{ steps.workflow.outputs.PACKAGE }}"]}' > .wp-env.override.json
- name: Install WordPress
run: npx wp-env start --debug
- name: Run Cypress Tests
env:
RECORD_REPLAY_API_KEY: ${{ secrets.RECORD_REPLAY_API_KEY }}
if: ${{ github.repository != 'bluehost/bluehost-wordpress-plugin' || env.RECORD_REPLAY_API_KEY == '' }}
run: npx cypress run
- name: Run Cypress Tests
uses: replayio/[email protected]
env:
RECORD_REPLAY_API_KEY: ${{ secrets.RECORD_REPLAY_API_KEY }}
if: ${{ github.repository == 'bluehost/bluehost-wordpress-plugin' && env.RECORD_REPLAY_API_KEY != '' }}
with:
api-key: ${{ secrets.RECORD_REPLAY_API_KEY }}
browser: 'replay-chromium'
command: npm run test:e2e -- --record --key ${{ secrets.CYPRESS_RECORD_KEY }} --tag bluehost
upload-all: false
- name: List Replays
if: always()
shell: bash
run: npx @replayio/replay ls --json
- name: Store screenshots of test failures
if: failure()
uses: actions/upload-artifact@v3
with:
name: screenshots
path: ./tests/cypress/screenshots
- name: Output debug.log file contents
if: always()
continue-on-error: true
run: npx wp-env run wordpress "cat /var/www/html/wp-content/debug.log"