Skip to content

Commit bbe42ac

Browse files
committed
compat workflow
1 parent af91041 commit bbe42ac

2 files changed

Lines changed: 111 additions & 1 deletion

File tree

.github/workflows/playwright.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
-d "admin_password=$WORDPRESS_ADMIN_PASSWORD" \
7676
-d "admin_password2=$WORDPRESS_ADMIN_PASSWORD" \
7777
-d "admin_email=$WORDPRESS_ADMIN_EMAIL" \
78-
-d "public=1"r
78+
-d "public=1"
7979
8080
# - name: Install necessary dependencies in WordPress container
8181
# run: |
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: Progress Planner Update & Compatibility Tests
2+
3+
env:
4+
WORDPRESS_URL: http://localhost:8080
5+
WORDPRESS_ADMIN_USER: admin
6+
WORDPRESS_ADMIN_PASSWORD: password
7+
WORDPRESS_ADMIN_EMAIL: admin@example.com
8+
WORDPRESS_TABLE_PREFIX: wp_
9+
WORDPRESS_DB_USER: wpuser
10+
WORDPRESS_DB_PASSWORD: wppass
11+
WORDPRESS_DB_NAME: wordpress
12+
WORDPRESS_DB_PORT: 3307 # So it can run locally (hopefully).
13+
PLUGIN_REPO: ProgressPlanner/progress-planner
14+
15+
16+
on:
17+
push:
18+
branches:
19+
- develop
20+
pull_request:
21+
22+
jobs:
23+
e2e-tests:
24+
runs-on: ubuntu-latest
25+
26+
services:
27+
mysql:
28+
image: mariadb:10.6
29+
env:
30+
MYSQL_ROOT_PASSWORD: root
31+
MYSQL_DATABASE: ${{ env.WORDPRESS_DB_NAME }}
32+
MYSQL_USER: ${{ env.WORDPRESS_DB_USER }}
33+
MYSQL_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }}
34+
ports:
35+
- 3307:3306 # GitHub Actions doesn't support environment variables in the ports section.
36+
wordpress:
37+
image: wordpress:latest
38+
env:
39+
WORDPRESS_DB_HOST: mysql
40+
WORDPRESS_DB_USER: ${{ env.WORDPRESS_DB_USER }}
41+
WORDPRESS_DB_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }}
42+
WORDPRESS_DB_NAME: ${{ env.WORDPRESS_DB_NAME }}
43+
WORDPRESS_DB_PORT: ${{ env.WORDPRESS_DB_PORT }}
44+
WORDPRESS_TABLE_PREFIX: ${{ env.WORDPRESS_TABLE_PREFIX }}
45+
WORDPRESS_DEBUG: 1
46+
WORDPRESS_URL: ${{ env.WORDPRESS_URL }}
47+
WORDPRESS_ADMIN_USER: ${{ env.WORDPRESS_ADMIN_USER }}
48+
WORDPRESS_ADMIN_PASSWORD: ${{ env.WORDPRESS_ADMIN_PASSWORD }}
49+
WORDPRESS_ADMIN_EMAIL: ${{ env.WORDPRESS_ADMIN_EMAIL }}
50+
PRPL_TEST_TOKEN: ${{ env.PRPL_TEST_TOKEN }}
51+
ports:
52+
- 8080:80
53+
options: >-
54+
--health-cmd="curl --silent --fail http://localhost:8080/wp-login.php || exit 0"
55+
--health-interval=10s
56+
--health-timeout=5s
57+
--health-retries=5
58+
59+
steps:
60+
- name: Checkout code
61+
uses: actions/checkout@v3
62+
63+
- name: Install Node.js & Playwright
64+
uses: actions/setup-node@v3
65+
with:
66+
node-version: 18
67+
- run: npm install -D @playwright/test
68+
- run: npx playwright install --with-deps
69+
70+
- name: Complete WordPress installation
71+
run: |
72+
echo "Installing WordPress at: $WORDPRESS_URL"
73+
curl --silent -X POST "$WORDPRESS_URL/wp-admin/install.php?step=2" \
74+
-d "weblog_title=My%20WordPress%20Site" \
75+
-d "user_name=$WORDPRESS_ADMIN_USER" \
76+
-d "admin_password=$WORDPRESS_ADMIN_PASSWORD" \
77+
-d "admin_password2=$WORDPRESS_ADMIN_PASSWORD" \
78+
-d "admin_email=$WORDPRESS_ADMIN_EMAIL" \
79+
-d "public=1"
80+
81+
- name: Install and activate plugin
82+
run: |
83+
# Install WP-CLI
84+
docker exec $(docker ps -qf "name=wordpress") curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
85+
docker exec $(docker ps -qf "name=wordpress") chmod +x wp-cli.phar
86+
docker exec $(docker ps -qf "name=wordpress") mv wp-cli.phar /usr/local/bin/wp
87+
88+
# Create the plugins directory in the WordPress container
89+
docker exec $(docker ps -qf "name=wordpress") mkdir -p /var/www/html/wp-content/plugins
90+
91+
# Clone the plugin's repository (old version) directly into the WordPress plugins directory
92+
docker exec $(docker ps -qf "name=wordpress") git clone --branch v1.1.0 https://github.com/${{ env.PLUGIN_REPO }}.git /var/www/html/wp-content/plugins/progress-planner
93+
94+
# Activate the plugin using WP-CLI
95+
docker exec $(docker ps -qf "name=wordpress") wp plugin activate progress-planner --allow-root
96+
97+
# Echo version of the plugin
98+
docker exec $(docker ps -qf "name=wordpress") wp option get progress_planner_settings --allow-root
99+
100+
# Overwrite the plugin files with the latest version
101+
docker cp . $(docker ps -qf "name=wordpress"):/var/www/html/wp-content/plugins/progress-planner
102+
103+
# Echo version of the updated plugin
104+
docker exec $(docker ps -qf "name=wordpress") wp option get progress_planner_settings --allow-root
105+
106+
# Install Yoast SEO
107+
docker exec $(docker ps -qf "name=wordpress") wp plugin install wordpress-seo --activate --allow-root
108+
109+
# Install Comment Experience
110+
docker exec $(docker ps -qf "name=wordpress") wp plugin install yoast-comment-experience --activate --allow-root

0 commit comments

Comments
 (0)