-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy path.platform.app.yaml
105 lines (92 loc) · 3.6 KB
/
.platform.app.yaml
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
# This file describes an application. You can have multiple applications
# in the same project.
# The name of this app. Must be unique within a project.
name: app
# The runtime the application uses.
type: "php:8.1"
dependencies:
php:
wp-cli/wp-cli-bundle: "^2.4"
psy/psysh: "^0.10.4"
# The relationships of the application with services or other applications.
# The left-hand side is the name of the relationship as it will be exposed
# to the application in the PLATFORM_RELATIONSHIPS variable. The right-hand
# side is in the form `<service name>:<endpoint name>`.
relationships:
database: "db:mysql"
variables:
php:
session.gc_maxlifetime: '200000'
session.cookie_lifetime: '2000000'
pcre.backtrack_limit: '200000'
pcre.recursion_limit: '200000'
# The configuration of app when it is exposed to the web.
web:
locations:
"/":
# The public directory of the app, relative to its root.
root: "wordpress"
# The front-controller script to send non-static requests to.
passthru: "/index.php"
# Wordpress has multiple roots (wp-admin) so the following is required
index:
- "index.php"
# The number of seconds whitelisted (static) content should be cached.
expires: 600
scripts: true
allow: true
rules:
^/composer\.json:
allow: false
^/license\.txt$:
allow: false
^/readme\.html$:
allow: false
"/wp-content/cache":
root: "wordpress/wp-content/cache"
scripts: false
allow: false
"/wp-content/uploads":
root: "wordpress/wp-content/uploads"
scripts: false
allow: false
rules:
# Allow access to common static files.
'(?<!\-lock)\.(?i:jpe?g|gif|png|svg|bmp|ico|css|js(?:on)?|eot|ttf|woff|woff2|pdf|docx?|xlsx?|pp[st]x?|psd|odt|key|mp[2-5g]|m4[av]|og[gv]|wav|mov|wm[av]|avi|3g[p2])$':
allow: true
expires: 1w
# The size of the persistent disk of the application (in MB).
disk: 2048
# The mounts that will be performed when the package is deployed.
mounts:
"wordpress/wp-content/cache":
source: local
source_path: "cache"
"wordpress/wp-content/uploads":
source: local
source_path: "uploads"
hooks:
deploy: |
wp cache flush
wp core update-db
wp cron event run --due-now
source:
operations:
auto-update:
command: |
# get our pub directory as defined in the application
pubDir=$(echo $PLATFORM_APPLICATION | base64 --decode | jq -r '.web.locations."/".root')
# grab the latest version of WordPress, save locally based on pubDir name
curl https://wordpress.org/latest -o "${PLATFORM_CACHE_DIR}/${pubDir}.tar.gz"
cd "${PLATFORM_CACHE_DIR}"
tar -xvf "${pubDir}.tar.gz" && rm "${pubDir}.tar.gz"
# the archive always expands into a "wordpress" directory
rsync -av wordpress/ "${PLATFORM_SOURCE_DIR}/${pubDir}"
cd "${PLATFORM_SOURCE_DIR}"
git add --all
confirm=$(git status --porcelain=1);
if [ -z "${confirm}" ]; then
echo "No changes to commit."
else
git commit -m "Auto updated via source operations"
fi