Skip to content

Commit 33a3669

Browse files
authored
Merge pull request #495 from ProgressPlanner/develop
v1.5
2 parents 294ab46 + d1affaa commit 33a3669

39 files changed

Lines changed: 6701 additions & 4011 deletions

.github/workflows/playwright.yml

Lines changed: 54 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ env:
1111
WORDPRESS_DB_NAME: wordpress
1212
WORDPRESS_DB_PORT: 3307 # So it can run locally (hopefully).
1313
PRPL_TEST_TOKEN: 0220a2de67fc29094281088395939f58
14+
YOAST_TOKEN: ${{ secrets.YOAST_TOKEN }}
1415

1516
on:
1617
push:
@@ -75,48 +76,79 @@ jobs:
7576
-d "admin_password=$WORDPRESS_ADMIN_PASSWORD" \
7677
-d "admin_password2=$WORDPRESS_ADMIN_PASSWORD" \
7778
-d "admin_email=$WORDPRESS_ADMIN_EMAIL" \
78-
-d "public=1"r
79-
80-
# - name: Install necessary dependencies in WordPress container
81-
# run: |
82-
# docker exec $(docker ps -qf "name=wordpress") apt-get update
83-
# docker exec $(docker ps -qf "name=wordpress") apt-get install -y \
84-
# php php-cli php-mysql php-curl php-xml php-mbstring php-zip curl \
85-
# libnss3 libxss1 libasound2 libatk-bridge2.0-0 libgtk-3-0 libgbm-dev libwoff1
79+
-d "public=1"
8680
8781
- name: Install and activate plugin
8882
run: |
83+
WP_CONTAINER=$(docker ps -qf "name=wordpress")
84+
8985
# Install WP-CLI
90-
docker exec $(docker ps -qf "name=wordpress") curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
91-
docker exec $(docker ps -qf "name=wordpress") chmod +x wp-cli.phar
92-
docker exec $(docker ps -qf "name=wordpress") mv wp-cli.phar /usr/local/bin/wp
86+
docker exec $WP_CONTAINER curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
87+
docker exec $WP_CONTAINER chmod +x wp-cli.phar
88+
docker exec $WP_CONTAINER mv wp-cli.phar /usr/local/bin/wp
9389
9490
# Create the plugins directory in the WordPress container
95-
docker exec $(docker ps -qf "name=wordpress") mkdir -p /var/www/html/wp-content/plugins
91+
docker exec $WP_CONTAINER mkdir -p /var/www/html/wp-content/plugins
9692
9793
# Copy plugin files to WordPress plugins directory
98-
docker cp . $(docker ps -qf "name=wordpress"):/var/www/html/wp-content/plugins/progress-planner
94+
docker cp . $WP_CONTAINER:/var/www/html/wp-content/plugins/progress-planner
9995
10096
# Activate the plugin using WP-CLI
101-
docker exec $(docker ps -qf "name=wordpress") wp plugin activate progress-planner --allow-root
97+
docker exec $WP_CONTAINER wp plugin activate progress-planner --allow-root
10298
10399
# Enable debug mode
104-
docker exec $(docker ps -qf "name=wordpress") wp option update prpl_debug true --allow-root
100+
docker exec $WP_CONTAINER wp option update prpl_debug true --allow-root
105101
106102
# Insert test token
107-
docker exec $(docker ps -qf "name=wordpress") wp option update progress_planner_test_token $PRPL_TEST_TOKEN --allow-root
103+
docker exec $WP_CONTAINER wp option update progress_planner_test_token $PRPL_TEST_TOKEN --allow-root
108104
109105
# Install Yoast SEO
110-
docker exec $(docker ps -qf "name=wordpress") wp plugin install wordpress-seo --activate --allow-root
111-
112-
# - name: Wait for WordPress to be ready
113-
# run: |
114-
# echo "Waiting for WordPress to be ready..."
115-
# sleep 30 # Adjust if necessary based on the container startup time
106+
docker exec $WP_CONTAINER wp plugin install wordpress-seo --activate --allow-root
116107
117108
- name: Run Playwright Tests
118109
run: npx playwright test tests/e2e/
119110

111+
# Begin Yoast SEO Premium tests
112+
- name: Install PHP & Composer on host
113+
run: |
114+
sudo apt-get update
115+
sudo apt-get install -y git curl unzip php-cli php-curl php-mbstring php-xml php-zip
116+
curl -sS https://getcomposer.org/installer | php
117+
sudo mv composer.phar /usr/local/bin/composer
118+
119+
- name: Install plugin dependencies (Composer)
120+
run: |
121+
composer config -g http-basic.my.yoast.com token $YOAST_TOKEN
122+
composer config repositories.my-yoast composer https://my.yoast.com/packages/
123+
composer config --no-plugins allow-plugins.composer/installers true
124+
composer install --working-dir=./
125+
126+
- name: Require Yoast SEO Premium & copy files
127+
run: |
128+
WP_CONTAINER=$(docker ps -qf "name=wordpress")
129+
composer require yoast/wordpress-seo-premium
130+
composer dump-autoload --working-dir=./wp-content/plugins/wordpress-seo-premium
131+
docker cp ./wp-content/plugins/wordpress-seo-premium $WP_CONTAINER:/var/www/html/wp-content/plugins/wordpress-seo-premium
132+
133+
- name: Activate Yoast SEO Premium
134+
run: |
135+
WP_CONTAINER=$(docker ps -qf "name=wordpress")
136+
docker exec $WP_CONTAINER wp plugin activate wordpress-seo-premium --allow-root
137+
138+
- name: Update Yoast Premium settings
139+
run: |
140+
WP_CONTAINER=$(docker ps -qf "name=wordpress")
141+
# Get current option value
142+
CURRENT_OPTION=$(docker exec $WP_CONTAINER wp option get wpseo_premium --format=json --allow-root)
143+
# Update the option with should_redirect_after_install set to false
144+
UPDATED_OPTION=$(echo $CURRENT_OPTION | jq '.should_redirect_after_install = false')
145+
# Save the updated option
146+
docker exec $WP_CONTAINER wp option update wpseo_premium "$UPDATED_OPTION" --format=json --allow-root
147+
148+
- name: Run Yoast Focus Element Test Again
149+
run: npx playwright test tests/e2e/yoast-focus-element.spec.js
150+
# End Yoast SEO Premium tests
151+
120152
- name: Upload Playwright Report
121153
if: always()
122154
uses: actions/upload-artifact@v4
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
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
13+
PLUGIN_REPO: ProgressPlanner/progress-planner
14+
YOAST_TOKEN: ${{ secrets.YOAST_TOKEN }}
15+
16+
on:
17+
push:
18+
branches:
19+
- develop
20+
pull_request:
21+
# Allow manually triggering the workflow.
22+
workflow_dispatch:
23+
24+
jobs:
25+
upgrade-compat:
26+
runs-on: ubuntu-22.04
27+
28+
services:
29+
mysql:
30+
image: mariadb:10.6
31+
env:
32+
MYSQL_ROOT_PASSWORD: root
33+
MYSQL_DATABASE: ${{ env.WORDPRESS_DB_NAME }}
34+
MYSQL_USER: ${{ env.WORDPRESS_DB_USER }}
35+
MYSQL_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }}
36+
ports:
37+
- 3307:3306
38+
39+
wordpress:
40+
image: wordpress:latest
41+
env:
42+
WORDPRESS_DB_HOST: mysql
43+
WORDPRESS_DB_USER: ${{ env.WORDPRESS_DB_USER }}
44+
WORDPRESS_DB_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }}
45+
WORDPRESS_DB_NAME: ${{ env.WORDPRESS_DB_NAME }}
46+
WORDPRESS_DB_PORT: ${{ env.WORDPRESS_DB_PORT }}
47+
WORDPRESS_TABLE_PREFIX: ${{ env.WORDPRESS_TABLE_PREFIX }}
48+
WORDPRESS_DEBUG: 1
49+
WORDPRESS_URL: ${{ env.WORDPRESS_URL }}
50+
WORDPRESS_ADMIN_USER: ${{ env.WORDPRESS_ADMIN_USER }}
51+
WORDPRESS_ADMIN_PASSWORD: ${{ env.WORDPRESS_ADMIN_PASSWORD }}
52+
WORDPRESS_ADMIN_EMAIL: ${{ env.WORDPRESS_ADMIN_EMAIL }}
53+
ports:
54+
- 8080:80
55+
options: >-
56+
--health-cmd="curl --silent --fail http://localhost:8080/wp-login.php || exit 0"
57+
--health-interval=10s
58+
--health-timeout=5s
59+
--health-retries=5
60+
61+
steps:
62+
- name: Checkout code
63+
uses: actions/checkout@v3
64+
65+
- name: Install PHP & Composer on host
66+
run: |
67+
sudo apt-get update
68+
sudo apt-get install -y git curl unzip php-cli php-curl php-mbstring php-xml php-zip
69+
curl -sS https://getcomposer.org/installer | php
70+
sudo mv composer.phar /usr/local/bin/composer
71+
72+
- name: Install plugin dependencies (Composer)
73+
run: |
74+
composer config -g http-basic.my.yoast.com token $YOAST_TOKEN
75+
composer config repositories.my-yoast composer https://my.yoast.com/packages/
76+
composer config --no-plugins allow-plugins.composer/installers true
77+
composer install --working-dir=./
78+
79+
- name: Complete WordPress installation
80+
run: |
81+
echo "Installing WordPress at: $WORDPRESS_URL"
82+
curl --silent -X POST "$WORDPRESS_URL/wp-admin/install.php?step=2" \
83+
-d "weblog_title=My%20WordPress%20Site" \
84+
-d "user_name=$WORDPRESS_ADMIN_USER" \
85+
-d "admin_password=$WORDPRESS_ADMIN_PASSWORD" \
86+
-d "admin_password2=$WORDPRESS_ADMIN_PASSWORD" \
87+
-d "admin_email=$WORDPRESS_ADMIN_EMAIL" \
88+
-d "public=1"
89+
90+
- name: Install and activate plugins in WordPress container
91+
run: |
92+
WP_CONTAINER=$(docker ps -qf "name=wordpress")
93+
94+
# Install git inside the WordPress container
95+
docker exec $WP_CONTAINER apt-get update
96+
docker exec $WP_CONTAINER apt-get install -y git
97+
98+
# Install WP-CLI
99+
docker exec $WP_CONTAINER curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
100+
docker exec $WP_CONTAINER chmod +x wp-cli.phar
101+
docker exec $WP_CONTAINER mv wp-cli.phar /usr/local/bin/wp
102+
103+
# Create plugin directory
104+
docker exec $WP_CONTAINER mkdir -p /var/www/html/wp-content/plugins/progress-planner
105+
106+
# Clone plugin repository (v1.1.0)
107+
docker exec $WP_CONTAINER git clone --branch v1.1.0 https://github.com/$PLUGIN_REPO.git /var/www/html/wp-content/plugins/progress-planner
108+
109+
# Activate plugin using WP-CLI
110+
docker exec $WP_CONTAINER wp plugin activate progress-planner --allow-root
111+
112+
# Show plugin settings (before 1.1.1 there was no version set)
113+
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
114+
115+
# Overwrite plugin files with the latest version from this branch
116+
docker cp . $WP_CONTAINER:/var/www/html/wp-content/plugins/progress-planner
117+
118+
# Show updated plugin settings
119+
docker exec $WP_CONTAINER wp option get progress_planner_version --allow-root
120+
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
121+
122+
# Activate 3rd party plugins
123+
docker exec $WP_CONTAINER wp plugin install wordpress-seo --activate --allow-root
124+
docker exec $WP_CONTAINER wp plugin install yoast-comment-hacks --activate --allow-root
125+
126+
# Show plugin settings
127+
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
128+
129+
# Require Yoast SEO Premium & copy files
130+
composer require yoast/wordpress-seo-premium
131+
composer dump-autoload --working-dir=./wp-content/plugins/wordpress-seo-premium
132+
docker cp ./wp-content/plugins/wordpress-seo-premium $WP_CONTAINER:/var/www/html/wp-content/plugins/wordpress-seo-premium
133+
134+
# Activate Yoast SEO Premium
135+
docker exec $WP_CONTAINER wp plugin activate wordpress-seo-premium --allow-root
136+
137+
# Show plugin settings
138+
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,17 @@
1+
= 1.5.0 =
2+
3+
Added these recommendations from Ravi:
4+
5+
* [Test if your website can send emails correctly](https://prpl.fyi/troubleshoot-smtp).
6+
7+
Bugs we fixed:
8+
9+
* Don't redirect user to Progress Planner dashboard if 'redirect_to' GET or POST parameter is set.
10+
* Removed the Onboard tour steps for the Settings popover which was removed in 1.3.0.
11+
* Fixed detecting creation of new valuable content posts.
12+
* Don't award point for all Todo tasks, only for golden.
13+
* Fix Todo task title not being editable.
14+
115
= 1.4.2 =
216

317
Bugs we fixed:

assets/css/admin.css

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ button.prpl-info-icon {
362362
.prpl-wrap input[type="tel"],
363363
.prpl-wrap input[type="search"] {
364364
height: 40px;
365-
box-shadow: 1px 2px 4px 0 rgba(0, 0, 0, 0.25);
365+
box-shadow: 1px 2px 4px 0 rgba(0, 0, 0, 0.05);
366366
}
367367

368368
/*------------------------------------*\
@@ -472,3 +472,12 @@ button.prpl-info-icon {
472472
height: 1em;
473473
}
474474
}
475+
476+
/*------------------------------------*\
477+
Layout for columns.
478+
\*------------------------------------*/
479+
.prpl-columns-wrapper {
480+
display: grid;
481+
grid-template-columns: repeat(2, 1fr);
482+
gap: var(--prpl-padding);
483+
}

0 commit comments

Comments
 (0)