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
0 commit comments