-
Notifications
You must be signed in to change notification settings - Fork 1
141 lines (118 loc) · 5.52 KB
/
Copy pathupgrade-compat.yml
File metadata and controls
141 lines (118 loc) · 5.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: Progress Planner Update & Compatibility Tests
env:
WORDPRESS_URL: http://localhost:8080
WORDPRESS_ADMIN_USER: admin
WORDPRESS_ADMIN_PASSWORD: password
WORDPRESS_ADMIN_EMAIL: admin@example.com
WORDPRESS_TABLE_PREFIX: wp_
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_PASSWORD: wppass
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_PORT: 3307
PLUGIN_REPO: ProgressPlanner/progress-planner
YOAST_TOKEN: ${{ secrets.YOAST_TOKEN }}
on:
push:
branches:
- main
- develop
- 'release/[0-9]+.[0-9]+*'
- 'hotfix/[0-9]+.[0-9]+*'
pull_request:
# Allow manually triggering the workflow.
workflow_dispatch:
jobs:
upgrade-compat:
runs-on: ubuntu-22.04
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
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 }}
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 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: 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 plugins in WordPress container
run: |
WP_CONTAINER=$(docker ps -qf "name=wordpress")
# Install git inside the WordPress container
docker exec $WP_CONTAINER apt-get update
docker exec $WP_CONTAINER apt-get install -y git
# 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 plugin directory
docker exec $WP_CONTAINER mkdir -p /var/www/html/wp-content/plugins/progress-planner
# Clone plugin repository (v1.1.0)
docker exec $WP_CONTAINER git clone --branch v1.1.0 https://github.com/$PLUGIN_REPO.git /var/www/html/wp-content/plugins/progress-planner
# Activate plugin using WP-CLI
docker exec $WP_CONTAINER wp plugin activate progress-planner --allow-root
# Show plugin settings (before 1.1.1 there was no version set)
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
# Overwrite plugin files with the latest version from this branch
docker cp . $WP_CONTAINER:/var/www/html/wp-content/plugins/progress-planner
# Show updated plugin settings
docker exec $WP_CONTAINER wp option get progress_planner_version --allow-root
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
# Activate 3rd party plugins
docker exec $WP_CONTAINER wp plugin install wordpress-seo --activate --allow-root
docker exec $WP_CONTAINER wp plugin install yoast-comment-hacks --activate --allow-root
# Show plugin settings
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root
# Require Yoast SEO Premium & copy files
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
# Activate Yoast SEO Premium
docker exec $WP_CONTAINER wp plugin activate wordpress-seo-premium --allow-root
# Show plugin settings
docker exec $WP_CONTAINER wp option get progress_planner_settings --allow-root