Skip to content

Commit

Permalink
Merge pull request #361 from newfold-labs/update/cypress-runner
Browse files Browse the repository at this point in the history
Clean up how Cypress tests are run
  • Loading branch information
circlecube authored Nov 30, 2023
2 parents fb293a5 + ec89ed9 commit ca0efee
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 461 deletions.
18 changes: 0 additions & 18 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,6 @@ updates:
- dependency-type: direct
schedule:
interval: "daily"
assignees:
- "wpscholar"
reviewers:
- "wpalani"
- "circlecube"
- "wpscholar"
commit-message:
prefix: "GitHub Actions"
include: "scope"
Expand All @@ -30,12 +24,6 @@ updates:
schedule:
interval: "daily"
versioning-strategy: increase
assignees:
- "wpscholar"
reviewers:
- "wpalani"
- "circlecube"
- "wpscholar"
commit-message:
prefix: "NPM"
prefix-development: "NPM Dev"
Expand All @@ -53,12 +41,6 @@ updates:
allow:
- dependency-type: direct
versioning-strategy: increase
assignees:
- "wpscholar"
reviewers:
- "wpalani"
- "circlecube"
- "wpscholar"
commit-message:
prefix: "Composer"
prefix-development: "Composer Dev"
Expand Down
25 changes: 5 additions & 20 deletions .github/workflows/cypress-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,27 +114,12 @@ jobs:
run: npx wp-env start --debug

- name: Run Cypress Tests
env:
RECORD_REPLAY_API_KEY: ${{ secrets.RECORD_REPLAY_API_KEY }}
if: ${{ github.repository != 'newfold-labs/wp-plugin-hostgator' || env.RECORD_REPLAY_API_KEY == '' }}
run: npx cypress run
if: ${{ github.repository != 'newfold-labs/wp-plugin-hostgator' || github.actor == 'dependabot[bot]' }}
run: npm run test:e2e -- --browser chrome

- name: Run Cypress Tests
uses: replayio/[email protected]
env:
RECORD_REPLAY_METADATA_TEST_RUN_TITLE: "php-${{ matrix.phpVersion }}, wp-${{ matrix.wpVersion }}"
RECORD_REPLAY_API_KEY: ${{ secrets.RECORD_REPLAY_API_KEY }}
if: ${{ github.repository == 'newfold-labs/wp-plugin-hostgator' && 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 hostgator,php-${{ matrix.phpVersion }},wp-${{ matrix.wpVersion }}
upload-all: false

- name: List Replays
if: always()
shell: bash
run: npx @replayio/replay ls --json
- name: Run Cypress Cloud Tests
if: ${{ github.repository == 'newfold-labs/wp-plugin-hostgator' && github.actor != 'dependabot[bot]' }}
run: npm run test:e2e -- --browser chrome --record --key ${{ secrets.CYPRESS_RECORD_KEY }} --tag "hostgator,php-${{ matrix.phpVersion }},wp-${{ matrix.wpVersion }}"

- name: Store screenshots of test failures
if: ${{ failure() }}
Expand Down
115 changes: 115 additions & 0 deletions .github/workflows/cypress-tests-beta.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Cypress Tests Beta Only

on:
schedule:
# Runs "Every Monday 6am UTC"
- cron: '0 6 * * 1'
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 Beta Only 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@v4
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: Fetch WordPress beta version
run: |
wp_beta_zip=$(node -e "
const fetch = require('node-fetch');
fetch('https://api.wordpress.org/core/version-check/1.7/?channel=beta')
.then(response => response.json())
.then(data => data.offers[0].download);
")
echo $wp_beta_zip
- name: Configure WordPress
run: |
echo '{ "core" : "'"${wp_beta_zip}"'" , "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
if: ${{ github.repository == 'newfold-labs/wp-plugin-hostgator' }}
run: npm run test:e2e -- --browser chrome --tag "hostgator, wp-beta"

- 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"
24 changes: 5 additions & 19 deletions .github/workflows/cypress-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -112,26 +112,12 @@ jobs:
run: npx @wordpress/env@latest start

- name: Run Cypress Tests
env:
RECORD_REPLAY_API_KEY: ${{ secrets.RECORD_REPLAY_API_KEY }}
if: ${{ github.repository != 'newfold-labs/wp-plugin-hostgator' || env.RECORD_REPLAY_API_KEY == '' }}
run: npx cypress run
if: ${{ github.repository != 'newfold-labs/wp-plugin-hostgator' || github.actor == 'dependabot[bot]' }}
run: npm run test:e2e -- --browser chrome

- name: Run Cypress Tests
uses: replayio/[email protected]
env:
RECORD_REPLAY_API_KEY: ${{ secrets.RECORD_REPLAY_API_KEY }}
if: ${{ github.repository == 'newfold-labs/wp-plugin-hostgator' && 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 hostgator
upload-all: false

- name: List Replays
if: always()
shell: bash
run: npx @replayio/replay ls --json
- name: Run Cypress Cloud Tests
if: ${{ github.repository == 'newfold-labs/wp-plugin-hostgator' && github.actor != 'dependabot[bot]' }}
run: npm run test:e2e -- --browser chrome --record --key ${{ secrets.CYPRESS_RECORD_KEY }} --tag hostgator

- name: Store screenshots of test failures
if: ${{ failure() }}
Expand Down
4 changes: 0 additions & 4 deletions cypress.config.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
const { defineConfig } = require('cypress')
const cypressReplay = require("@replayio/cypress")
const { phpVersion, core } = require('./.wp-env.json')
const wpVersion = /[^/]*$/.exec(core)[0]

Expand Down Expand Up @@ -30,9 +29,6 @@ module.exports = defineConfig({
// We've imported your old cypress plugins here.
// You may want to clean this up later by importing these.
setupNodeEvents(on, config) {
// Setup Replay
cypressReplay.default(on, config);

return require('./tests/cypress/plugins/index.js')(on, config)
},
baseUrl: 'http://localhost:8880',
Expand Down
Loading

0 comments on commit ca0efee

Please sign in to comment.