Skip to content

Commit eea366e

Browse files
authored
Merge pull request #477 from ProgressPlanner/filip/upgrade-compat
Upgrade / compat github workflow
2 parents edf1d3b + ca36501 commit eea366e

2 files changed

Lines changed: 124 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: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
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+
15+
on:
16+
push:
17+
branches:
18+
- develop
19+
pull_request:
20+
# Allow manually triggering the workflow.
21+
workflow_dispatch:
22+
23+
jobs:
24+
upgrade-compat:
25+
runs-on: ubuntu-latest
26+
27+
services:
28+
mysql:
29+
image: mariadb:10.6
30+
env:
31+
MYSQL_ROOT_PASSWORD: root
32+
MYSQL_DATABASE: ${{ env.WORDPRESS_DB_NAME }}
33+
MYSQL_USER: ${{ env.WORDPRESS_DB_USER }}
34+
MYSQL_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }}
35+
ports:
36+
- 3307:3306
37+
38+
wordpress:
39+
image: wordpress:latest
40+
env:
41+
WORDPRESS_DB_HOST: mysql
42+
WORDPRESS_DB_USER: ${{ env.WORDPRESS_DB_USER }}
43+
WORDPRESS_DB_PASSWORD: ${{ env.WORDPRESS_DB_PASSWORD }}
44+
WORDPRESS_DB_NAME: ${{ env.WORDPRESS_DB_NAME }}
45+
WORDPRESS_DB_PORT: ${{ env.WORDPRESS_DB_PORT }}
46+
WORDPRESS_TABLE_PREFIX: ${{ env.WORDPRESS_TABLE_PREFIX }}
47+
WORDPRESS_DEBUG: 1
48+
WORDPRESS_URL: ${{ env.WORDPRESS_URL }}
49+
WORDPRESS_ADMIN_USER: ${{ env.WORDPRESS_ADMIN_USER }}
50+
WORDPRESS_ADMIN_PASSWORD: ${{ env.WORDPRESS_ADMIN_PASSWORD }}
51+
WORDPRESS_ADMIN_EMAIL: ${{ env.WORDPRESS_ADMIN_EMAIL }}
52+
PRPL_TEST_TOKEN: ${{ env.PRPL_TEST_TOKEN }}
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 system dependencies (host)
66+
run: |
67+
sudo apt-get update
68+
sudo apt-get install -y git curl unzip
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+
WP_CONTAINER=$(docker ps -qf "name=wordpress")
84+
PLUGIN_REPO=$PLUGIN_REPO
85+
PLUGIN_OLD_VERSION=$PLUGIN_OLD_VERSION
86+
87+
# Install git inside the WordPress container
88+
docker exec $WP_CONTAINER apt-get update
89+
docker exec $WP_CONTAINER apt-get install -y git
90+
91+
# Install WP-CLI
92+
docker exec $WP_CONTAINER curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
93+
docker exec $WP_CONTAINER chmod +x wp-cli.phar
94+
docker exec $WP_CONTAINER mv wp-cli.phar /usr/local/bin/wp
95+
96+
# Create the plugins directory
97+
docker exec $WP_CONTAINER mkdir -p /var/www/html/wp-content/plugins
98+
99+
# Clone plugin repository (v1.1.0)
100+
docker exec $WP_CONTAINER git clone --branch v1.1.0 https://github.com/$PLUGIN_REPO.git /var/www/html/wp-content/plugins/progress-planner
101+
102+
# Activate plugin using WP-CLI
103+
docker exec $WP_CONTAINER wp plugin activate progress-planner --allow-root
104+
105+
# Show plugin settings (before 1.1.1 there was no version set)
106+
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
107+
108+
# Overwrite plugin files with the latest version from this branch
109+
docker cp . $WP_CONTAINER:/var/www/html/wp-content/plugins/progress-planner
110+
111+
# Show updated plugin settings
112+
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
113+
114+
# Install Yoast SEO
115+
docker exec $WP_CONTAINER wp plugin install wordpress-seo --activate --allow-root
116+
117+
# Install Yoast Comment Experience
118+
docker exec $WP_CONTAINER wp plugin install yoast-comment-hacks --activate --allow-root
119+
120+
# Final plugin version check
121+
docker exec $WP_CONTAINER wp option get progress_planner_version --allow-root
122+
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
123+

0 commit comments

Comments
 (0)