diff --git a/.github/actions/create-plugin-zip/action.yml b/.github/actions/create-plugin-zip/action.yml index c60a015..4d5f39a 100644 --- a/.github/actions/create-plugin-zip/action.yml +++ b/.github/actions/create-plugin-zip/action.yml @@ -7,5 +7,8 @@ runs: shell: bash run: | mkdir -p dist + echo "Creating plugin zip file..." zip -r dist/plugin.zip . \ - -x "node_modules/**" "dist/**" ".git/**" ".github/**" ".wiki/**" + -x "node_modules/**" "dist/**" ".git/**" ".github/**" ".wiki/**" "cypress/**" "playground/**" "tests/**" "vendor/**" + echo "Plugin zip created at dist/plugin.zip" + ls -la dist/ diff --git a/.github/workflows/playground-tests-fix.yml b/.github/workflows/playground-tests-fix.yml index aa06919..5594e6d 100644 --- a/.github/workflows/playground-tests-fix.yml +++ b/.github/workflows/playground-tests-fix.yml @@ -2,9 +2,10 @@ name: WordPress Playground Tests Fix on: push: - branches: [ main ] + branches: [ main, feature/* ] pull_request: branches: [ main ] + workflow_dispatch: permissions: contents: read @@ -31,7 +32,11 @@ jobs: run: npm ci --legacy-peer-deps - name: Add WordPress Playground CLI to dependencies - run: npm install --save-dev @wp-playground/cli + run: | + echo "Installing WordPress Playground CLI..." + npm install --save-dev @wp-playground/cli @wp-playground/blueprints @wp-playground/client + echo "WordPress Playground CLI installed" + npx @wp-playground/cli --version - name: Create plugin zip uses: ./.github/actions/create-plugin-zip @@ -41,15 +46,31 @@ jobs: # Set base URL for Cypress export CYPRESS_BASE_URL=http://localhost:8888 + # Check if blueprint file exists + echo "Checking blueprint file..." + ls -la playground/ + cat playground/blueprint.json + # Start WordPress Playground with our blueprint + echo "Starting WordPress Playground server..." npx @wp-playground/cli server --blueprint playground/blueprint.json --port 8888 --login & + SERVER_PID=$! # Wait for WordPress Playground to be ready echo "Waiting for WordPress Playground to be ready..." timeout 60 bash -c 'until curl -s http://localhost:8888; do sleep 2; done' + echo "WordPress Playground is ready" # Run Cypress tests against WordPress Playground + echo "Running Cypress tests..." npx cypress run --spec "cypress/e2e/playground-single-site.cy.js" + TEST_EXIT_CODE=$? + + # Kill the server process + kill $SERVER_PID || true + + # Return the test exit code + exit $TEST_EXIT_CODE - name: Upload Cypress artifacts if: always() diff --git a/.github/workflows/playground-tests.yml b/.github/workflows/playground-tests.yml index 2ba60f7..f520109 100644 --- a/.github/workflows/playground-tests.yml +++ b/.github/workflows/playground-tests.yml @@ -60,7 +60,11 @@ jobs: run: npm ci --legacy-peer-deps - name: Add WordPress Playground CLI to dependencies - run: npm install --save-dev @wp-playground/cli + run: | + echo "Installing WordPress Playground CLI..." + npm install --save-dev @wp-playground/cli @wp-playground/blueprints @wp-playground/client + echo "WordPress Playground CLI installed" + npx @wp-playground/cli --version - name: Create plugin zip uses: ./.github/actions/create-plugin-zip @@ -70,15 +74,31 @@ jobs: # Set base URL for Cypress export CYPRESS_BASE_URL=http://localhost:8888 + # Check if blueprint file exists + echo "Checking blueprint file..." + ls -la playground/ + cat playground/blueprint.json + # Start WordPress Playground with our blueprint + echo "Starting WordPress Playground server..." npx @wp-playground/cli server --blueprint playground/blueprint.json --port 8888 --login & + SERVER_PID=$! # Wait for WordPress Playground to be ready echo "Waiting for WordPress Playground to be ready..." timeout 60 bash -c 'until curl -s http://localhost:8888; do sleep 2; done' + echo "WordPress Playground is ready" # Run Cypress tests against WordPress Playground + echo "Running Cypress tests..." npx cypress run --spec "cypress/e2e/playground-single-site.cy.js" + TEST_EXIT_CODE=$? + + # Kill the server process + kill $SERVER_PID || true + + # Return the test exit code + exit $TEST_EXIT_CODE - name: Upload Cypress artifacts if: always() @@ -107,7 +127,11 @@ jobs: run: npm ci --legacy-peer-deps - name: Add WordPress Playground CLI to dependencies - run: npm install --save-dev @wp-playground/cli + run: | + echo "Installing WordPress Playground CLI..." + npm install --save-dev @wp-playground/cli @wp-playground/blueprints @wp-playground/client + echo "WordPress Playground CLI installed" + npx @wp-playground/cli --version - name: Create plugin zip uses: ./.github/actions/create-plugin-zip @@ -117,16 +141,32 @@ jobs: # Set base URL for Cypress export CYPRESS_BASE_URL=http://localhost:8889 + # Check if blueprint file exists + echo "Checking multisite blueprint file..." + ls -la playground/ + cat playground/multisite-blueprint.json + # Start WordPress Playground with our blueprint # Use a different port for multisite to avoid conflicts with single site tests + echo "Starting WordPress Playground server for multisite..." npx @wp-playground/cli server --blueprint playground/multisite-blueprint.json --port 8889 --login & + SERVER_PID=$! # Wait for WordPress Playground to be ready echo "Waiting for WordPress Playground to be ready..." timeout 60 bash -c 'until curl -s http://localhost:8889; do sleep 2; done' + echo "WordPress Playground is ready" # Run Cypress tests against WordPress Playground + echo "Running Cypress multisite tests..." npx cypress run --spec "cypress/e2e/playground-multisite.cy.js" + TEST_EXIT_CODE=$? + + # Kill the server process + kill $SERVER_PID || true + + # Return the test exit code + exit $TEST_EXIT_CODE - name: Upload Cypress artifacts if: always()