Revert to old onboarding system #3464
This file contains hidden or 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: Progress Planner Playwright Tests | |
| env: | |
| WORDPRESS_URL: http://localhost:8080 | |
| WORDPRESS_ADMIN_USER: admin | |
| WORDPRESS_ADMIN_PASSWORD: password | |
| WORDPRESS_ADMIN_EMAIL: [email protected] | |
| WORDPRESS_TABLE_PREFIX: wp_ | |
| WORDPRESS_DB_USER: wpuser | |
| WORDPRESS_DB_PASSWORD: wppass | |
| WORDPRESS_DB_NAME: wordpress | |
| WORDPRESS_DB_PORT: 3307 # So it can run locally (hopefully). | |
| PRPL_TEST_TOKEN: 0220a2de67fc29094281088395939f58 | |
| YOAST_TOKEN: ${{ secrets.YOAST_TOKEN }} | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - develop | |
| - 'release/[0-9]+.[0-9]+*' | |
| - 'hotfix/[0-9]+.[0-9]+*' | |
| pull_request: | |
| jobs: | |
| e2e-tests: | |
| runs-on: ubuntu-latest | |
| services: | |
| mysql: | |
| image: mariadb:10.6 | |
| env: | |
| MYSQL_ROOT_PASSWORD: root | |
| MYSQL_DATABASE: ${{ env.WORDPRESS_DB_NAME }} | |
| MYSQL_USER: ${{ env.WORDPRESS_DB_USER }} | |
| MYSQL_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }} | |
| ports: | |
| - 3307:3306 # GitHub Actions doesn't support environment variables in the ports section. | |
| wordpress: | |
| image: wordpress:latest | |
| env: | |
| WORDPRESS_DB_HOST: mysql | |
| WORDPRESS_DB_USER: ${{ env.WORDPRESS_DB_USER }} | |
| WORDPRESS_DB_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }} | |
| WORDPRESS_DB_NAME: ${{ env.WORDPRESS_DB_NAME }} | |
| WORDPRESS_DB_PORT: ${{ env.WORDPRESS_DB_PORT }} | |
| WORDPRESS_TABLE_PREFIX: ${{ env.WORDPRESS_TABLE_PREFIX }} | |
| WORDPRESS_DEBUG: 1 | |
| WORDPRESS_URL: ${{ env.WORDPRESS_URL }} | |
| WORDPRESS_ADMIN_USER: ${{ env.WORDPRESS_ADMIN_USER }} | |
| WORDPRESS_ADMIN_PASSWORD: ${{ env.WORDPRESS_ADMIN_PASSWORD }} | |
| WORDPRESS_ADMIN_EMAIL: ${{ env.WORDPRESS_ADMIN_EMAIL }} | |
| PRPL_TEST_TOKEN: ${{ env.PRPL_TEST_TOKEN }} | |
| ports: | |
| - 8080:80 | |
| options: >- | |
| --health-cmd="curl --silent --fail http://localhost:8080/wp-login.php || exit 0" | |
| --health-interval=10s | |
| --health-timeout=5s | |
| --health-retries=5 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v3 | |
| - name: Install Node.js & Playwright | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 18 | |
| - run: npm install -D @playwright/test | |
| - run: npx playwright install --with-deps | |
| - name: Complete WordPress installation | |
| run: | | |
| echo "Installing WordPress at: $WORDPRESS_URL" | |
| curl --silent -X POST "$WORDPRESS_URL/wp-admin/install.php?step=2" \ | |
| -d "weblog_title=My%20WordPress%20Site" \ | |
| -d "user_name=$WORDPRESS_ADMIN_USER" \ | |
| -d "admin_password=$WORDPRESS_ADMIN_PASSWORD" \ | |
| -d "admin_password2=$WORDPRESS_ADMIN_PASSWORD" \ | |
| -d "admin_email=$WORDPRESS_ADMIN_EMAIL" \ | |
| -d "public=1" | |
| - name: Install and activate plugin | |
| run: | | |
| WP_CONTAINER=$(docker ps -qf "name=wordpress") | |
| # Install WP-CLI | |
| docker exec $WP_CONTAINER curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar | |
| docker exec $WP_CONTAINER chmod +x wp-cli.phar | |
| docker exec $WP_CONTAINER mv wp-cli.phar /usr/local/bin/wp | |
| # Create the plugins directory in the WordPress container | |
| docker exec $WP_CONTAINER mkdir -p /var/www/html/wp-content/plugins | |
| # Copy plugin files to WordPress plugins directory | |
| docker cp . $WP_CONTAINER:/var/www/html/wp-content/plugins/progress-planner | |
| # Activate the plugin using WP-CLI | |
| docker exec $WP_CONTAINER wp plugin activate progress-planner --allow-root | |
| # Enable debug mode | |
| docker exec $WP_CONTAINER wp option update prpl_debug true --allow-root | |
| # Insert test token | |
| docker exec $WP_CONTAINER wp option update progress_planner_test_token $PRPL_TEST_TOKEN --allow-root | |
| # Install Yoast SEO | |
| docker exec $WP_CONTAINER wp plugin install wordpress-seo --activate --allow-root | |
| - name: Run Playwright Tests | |
| run: npx playwright test tests/e2e/ | |
| # Begin Yoast SEO Premium tests | |
| - name: Install PHP & Composer on host | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y git curl unzip php-cli php-curl php-mbstring php-xml php-zip | |
| curl -sS https://getcomposer.org/installer | php | |
| sudo mv composer.phar /usr/local/bin/composer | |
| - name: Install plugin dependencies (Composer) | |
| run: | | |
| composer config -g http-basic.my.yoast.com token $YOAST_TOKEN | |
| composer config repositories.my-yoast composer https://my.yoast.com/packages/ | |
| composer config --no-plugins allow-plugins.composer/installers true | |
| composer install --working-dir=./ | |
| - name: Require Yoast SEO Premium & copy files | |
| run: | | |
| WP_CONTAINER=$(docker ps -qf "name=wordpress") | |
| composer require yoast/wordpress-seo-premium | |
| composer dump-autoload --working-dir=./wp-content/plugins/wordpress-seo-premium | |
| docker cp ./wp-content/plugins/wordpress-seo-premium $WP_CONTAINER:/var/www/html/wp-content/plugins/wordpress-seo-premium | |
| - name: Activate Yoast SEO Premium | |
| run: | | |
| WP_CONTAINER=$(docker ps -qf "name=wordpress") | |
| docker exec $WP_CONTAINER wp plugin activate wordpress-seo-premium --allow-root | |
| - name: Update Yoast Premium settings | |
| run: | | |
| WP_CONTAINER=$(docker ps -qf "name=wordpress") | |
| # Get current option value | |
| CURRENT_OPTION=$(docker exec $WP_CONTAINER wp option get wpseo_premium --format=json --allow-root) | |
| # Update the option with should_redirect_after_install set to false | |
| UPDATED_OPTION=$(echo $CURRENT_OPTION | jq '.should_redirect_after_install = false') | |
| # Save the updated option | |
| docker exec $WP_CONTAINER wp option update wpseo_premium "$UPDATED_OPTION" --format=json --allow-root | |
| - name: Run Yoast Focus Element Test Again | |
| run: npx playwright test tests/e2e/yoast-focus-element.spec.js | |
| # End Yoast SEO Premium tests | |
| - name: Upload Playwright Report | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report | |
| path: playwright-report/ | |
| - name: Upload Playwright screenshots as artifacts | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-screenshots | |
| path: | | |
| onboarding-failed.png # Specify the path of the screenshot you want to upload |