PRESS4-393 | Cypress Test Workflow fix #15
Workflow file for this run
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: Trial Tests | |
on: | |
push: | |
branches: | |
- trunk | |
paths-ignore: | |
- '.github/**' | |
- '.gitignore' | |
- '**.md' | |
pull_request: | |
types: [ opened, edited, synchronize, reopened, ready_for_review ] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout plugin | |
uses: actions/checkout@v3 | |
with: | |
repository: bluehost/bluehost-wordpress-plugin | |
ref: 'develop' | |
- name: list directories | |
run: | | |
ls | |
pwd | |
- name: Use Node.js 16.x | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: "npm" | |
- name: Checkout module | |
uses: actions/checkout@v3 | |
with: | |
path: ./modules/${{ github.repository }} | |
- 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: Modify composer.json | |
run: | | |
node ./modules/newfold-labs/wp-module-ecommerce/scripts/update-plugin-composer.mjs ${PWD}/composer.json ${PWD}/modules | |
- name: Update lockfile | |
run: composer update | |
- 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 on Plugin | |
run: printf "\n//npm.pkg.github.com/:_authToken=${{ secrets.NEWFOLD_ACCESS_TOKEN }}" >> .npmrc | |
- name: NPM Install | |
run: npm ci --legacy-peer-deps | |
- name: Setup Registry on Module | |
working-directory: ./modules/${{ github.repository }} | |
run: printf "\n//npm.pkg.github.com/:_authToken=${{ secrets.NEWFOLD_ACCESS_TOKEN }}" >> .npmrc | |
- name: Setup module | |
working-directory: ./modules/${{ github.repository }} | |
run: npm ci --legacy-peer-deps | |
- name: NPM Install module | |
run: npm install ./modules/newfold-labs/wp-module-ecommerce --legacy-peer-deps --force | |
- name: View modified files | |
run: cat package.json composer.json | |
# - name: Build JavaScript | |
# run: npm run build | |
- name: Setup workflow context | |
id: workflow | |
working-directory: ${{ runner.temp }} | |
env: | |
REPO: "bluehost-wordpress-plugin" | |
run: | | |
mkdir dist | |
echo "DIST=${PWD}/dist" >> $GITHUB_OUTPUT | |
echo "PACKAGE=${REPO##*/}" >> $GITHUB_OUTPUT | |
- name: Prepare files | |
run: rsync -r --exclude-from=.distignore . ${{ steps.workflow.outputs.DIST }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ steps.workflow.outputs.PACKAGE }} | |
path: ${{ steps.workflow.outputs.DIST }} | |
- name: Download Bluehost Plugin | |
id: download-artifact | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
workflow: bluehost-plugin.yml | |
workflow_conclusion: success | |
name: bluehost-wordpress-plugin | |
path: ${{ 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 '{"config":{"WP_DEBUG_DISPLAY":false},"plugins":["${{ steps.workflow.outputs.DIST }}/${{ steps.workflow.outputs.PACKAGE }}"]}' > .wp-env.override.json | |
- name: Install WordPress | |
run: npx wp-env start | |
# - name: Run PHPUnit Tests | |
# run: npm run test:unit | |
- name: Run Cypress Tests | |
run: npx cypress run | |
- name: Store screenshots of test failures | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: screenshots | |
path: ./tests/cypress/screenshots | |
- name: Check if a debug.log file exists | |
id: hasErrors | |
run: npx wp-env run wordpress test ! -f /var/www/html/wp-content/debug.log | |
- name: Copy debug.log file | |
if: ${{ steps.hasErrors.outputs.failure }} | |
run: cat /var/www/html/wp-content/debug.log 1>./debug.log 2>/dev/null | |
- name: Store debug.log file | |
if: ${{ steps.hasErrors.outputs.failure }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: logs | |
path: ./debug.log | |
- name: Store a copy of the plugin on success | |
if: ${{ success() }} | |
uses: actions/upload-artifact@v1 | |
with: | |
name: ${{ steps.workflow.outputs.PACKAGE }} | |
path: ${{ steps.workflow.outputs.DIST }} |