setup-php 2.12.0 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +977 -936
- package/package.json +66 -56
- package/src/config.ts +82 -82
- package/src/configs/brew_extensions +30 -0
- package/src/configs/os_releases.csv +17 -0
- package/src/configs/php-versions.json +6 -5
- package/src/configs/{php.json → pm/php.json} +29 -29
- package/src/configs/{phpunit.json → pm/phpunit.json} +24 -24
- package/src/configs/tools.json +256 -234
- package/src/configs/tools_schema.json +114 -103
- package/src/coverage.ts +169 -142
- package/src/extensions.ts +363 -349
- package/src/install.ts +79 -82
- package/src/scripts/common.sh +366 -314
- package/src/scripts/darwin.sh +257 -248
- package/src/scripts/ext/blackfire.ps1 +32 -32
- package/src/scripts/ext/blackfire.sh +22 -21
- package/src/scripts/ext/couchbase.sh +43 -43
- package/src/scripts/ext/cubrid.sh +60 -60
- package/src/scripts/ext/extension_map.php +109 -0
- package/src/scripts/ext/firebird.ps1 +19 -19
- package/src/scripts/ext/firebird.sh +39 -35
- package/src/scripts/ext/gearman.sh +22 -22
- package/src/scripts/ext/geos.sh +17 -17
- package/src/scripts/ext/http.ps1 +54 -54
- package/src/scripts/ext/http.sh +120 -120
- package/src/scripts/ext/intl.sh +23 -23
- package/src/scripts/ext/ioncube.ps1 +33 -32
- package/src/scripts/ext/ioncube.sh +21 -19
- package/src/scripts/ext/oci.ps1 +60 -60
- package/src/scripts/ext/oci.sh +65 -63
- package/src/scripts/ext/patches/firebird.sh +11 -11
- package/src/scripts/ext/patches/geos.sh +7 -7
- package/src/scripts/ext/patches/http.sh +11 -11
- package/src/scripts/ext/patches/pdo_oci.sh +6 -6
- package/src/scripts/ext/patches/phpize.sh +26 -26
- package/src/scripts/ext/patches/protobuf.sh +4 -4
- package/src/scripts/ext/phalcon.ps1 +54 -55
- package/src/scripts/ext/phalcon.sh +59 -59
- package/src/scripts/ext/source.sh +144 -144
- package/src/scripts/linux.sh +239 -280
- package/src/scripts/tools/add_tools.ps1 +28 -25
- package/src/scripts/tools/add_tools.sh +27 -19
- package/src/scripts/tools/blackfire.ps1 +19 -21
- package/src/scripts/tools/blackfire.sh +40 -35
- package/src/scripts/tools/grpc_php_plugin.ps1 +21 -21
- package/src/scripts/tools/grpc_php_plugin.sh +58 -61
- package/src/scripts/tools/ppa.sh +189 -0
- package/src/scripts/tools/protoc.ps1 +38 -38
- package/src/scripts/tools/protoc.sh +28 -28
- package/src/scripts/win32.ps1 +566 -471
- package/src/tools.ts +538 -509
- package/src/utils.ts +503 -497
- package/.eslintrc.json +0 -16
- package/.github/CODE_OF_CONDUCT.md +0 -76
- package/.github/CONTRIBUTING.md +0 -70
- package/.github/FUNDING.yml +0 -7
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -37
- package/.github/SECURITY.md +0 -29
- package/.github/workflows/docs.yml +0 -77
- package/.github/workflows/node-workflow.yml +0 -51
- package/.github/workflows/workflow.yml +0 -78
- package/.idea/workspace.xml +0 -113
- package/.prettierrc.json +0 -12
- package/__tests__/config.test.ts +0 -52
- package/__tests__/coverage.test.ts +0 -110
- package/__tests__/extensions.test.ts +0 -261
- package/__tests__/install.test.ts +0 -175
- package/__tests__/tools.test.ts +0 -490
- package/__tests__/utils.test.ts +0 -303
- package/action.yml +0 -29
- package/dist/index.js +0 -3001
- package/examples/bedrock.yml +0 -32
- package/examples/blackfire-player.yml +0 -31
- package/examples/blackfire.yml +0 -31
- package/examples/cakephp-mysql.yml +0 -114
- package/examples/cakephp-postgres.yml +0 -112
- package/examples/cakephp.yml +0 -92
- package/examples/codeigniter.yml +0 -34
- package/examples/laravel-mysql.yml +0 -74
- package/examples/laravel-postgres.yml +0 -74
- package/examples/laravel.yml +0 -42
- package/examples/lumen-mysql.yml +0 -74
- package/examples/lumen-postgres.yml +0 -74
- package/examples/lumen.yml +0 -38
- package/examples/phalcon-mysql.yml +0 -74
- package/examples/phalcon-postgres.yml +0 -73
- package/examples/sage.yml +0 -57
- package/examples/slim-framework.yml +0 -34
- package/examples/symfony-mysql.yml +0 -57
- package/examples/symfony-postgres.yml +0 -55
- package/examples/symfony.yml +0 -39
- package/examples/yii2-mysql.yml +0 -73
- package/examples/yii2-postgres.yml +0 -71
- package/examples/zend-framework.yml +0 -36
- package/jest.config.js +0 -12
- package/lib/config.js +0 -72
- package/lib/config.js.map +0 -1
- package/lib/coverage.js +0 -88
- package/lib/coverage.js.map +0 -1
- package/lib/extensions.js +0 -201
- package/lib/extensions.js.map +0 -1
- package/lib/install.js +0 -82
- package/lib/install.js.map +0 -1
- package/lib/sapi.js +0 -64
- package/lib/tools.js +0 -387
- package/lib/tools.js.map +0 -1
- package/lib/utils.js +0 -292
- package/lib/utils.js.map +0 -1
- package/tsconfig.json +0 -18
package/src/scripts/darwin.sh
CHANGED
|
@@ -1,248 +1,257 @@
|
|
|
1
|
-
# Function to setup environment for self-hosted runners.
|
|
2
|
-
self_hosted_helper() {
|
|
3
|
-
if ! command -v brew >/dev/null; then
|
|
4
|
-
step_log "Setup Brew"
|
|
5
|
-
get -q -e "/tmp/install.sh" "https://raw.githubusercontent.com/Homebrew/install/master/install.sh" && /tmp/install.sh >/dev/null 2>&1
|
|
6
|
-
add_log "${tick:?}" "Brew" "Installed Homebrew"
|
|
7
|
-
fi
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
#
|
|
11
|
-
|
|
12
|
-
extension=$1
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
extension=$1
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
tap
|
|
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
|
-
formula
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
add_brew_tap
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
brew install -f "$formula@$version" >/dev/null 2>&1
|
|
76
|
-
sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
|
|
77
|
-
add_extension_log "$extension" "Installed and enabled"
|
|
78
|
-
fi
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
# Function to setup extensions.
|
|
82
|
-
add_extension() {
|
|
83
|
-
extension=$1
|
|
84
|
-
prefix=$2
|
|
85
|
-
enable_extension "$extension" "$prefix"
|
|
86
|
-
if check_extension "$extension"; then
|
|
87
|
-
add_log "${tick:?}" "$extension" "Enabled"
|
|
88
|
-
else
|
|
89
|
-
if [[ "$version" =~ ${old_versions:?} ]] && [ "$extension" = "imagick" ]; then
|
|
90
|
-
run_script "php5-darwin" "${version/./}" "$extension" >/dev/null 2>&1
|
|
91
|
-
else
|
|
92
|
-
pecl_install "$extension" >/dev/null 2>&1 &&
|
|
93
|
-
if [[ "$version" =~ ${old_versions:?} ]]; then echo "$prefix=$ext_dir/$extension.so" >>"$ini_file"; fi
|
|
94
|
-
fi
|
|
95
|
-
add_extension_log "$extension" "Installed and enabled"
|
|
96
|
-
fi
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
# Function to handle request to add phpize and php-config.
|
|
100
|
-
add_devtools() {
|
|
101
|
-
tool=$1
|
|
102
|
-
add_log "${tick:?}" "$tool" "Added $tool $semver"
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
# Function to handle request to add PECL.
|
|
106
|
-
add_pecl() {
|
|
107
|
-
configure_pecl >/dev/null 2>&1
|
|
108
|
-
|
|
109
|
-
add_log "${tick:?}" "PECL" "Found PECL $
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
# Function to link all libraries of a formula.
|
|
113
|
-
link_libraries() {
|
|
114
|
-
formula=$1
|
|
115
|
-
formula_prefix="$(brew --prefix "$formula")"
|
|
116
|
-
sudo mkdir -p "$formula_prefix"/lib
|
|
117
|
-
for lib in "$formula_prefix"/lib/*.dylib; do
|
|
118
|
-
lib_name=$(basename "$lib")
|
|
119
|
-
sudo cp -a "$lib" "$brew_prefix/lib/$lib_name" 2>/dev/null || true
|
|
120
|
-
done
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
# Patch brew to overwrite packages.
|
|
124
|
-
patch_brew() {
|
|
125
|
-
formula_installer="$brew_repo"/Library/Homebrew/formula_installer.rb
|
|
126
|
-
code=" keg.link(verbose: verbose?"
|
|
127
|
-
sudo sed -i '' "s/$code)/$code, overwrite: true)/" "$formula_installer"
|
|
128
|
-
# shellcheck disable=SC2064
|
|
129
|
-
trap "sudo sed -i '' 's/$code, overwrite: true)/$code)/' $formula_installer" exit
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
# Helper function to update the dependencies.
|
|
133
|
-
update_dependencies_helper() {
|
|
134
|
-
dependency=$1
|
|
135
|
-
get -q -n "$
|
|
136
|
-
link_libraries "$dependency"
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
# Function to update dependencies.
|
|
140
|
-
update_dependencies() {
|
|
141
|
-
if ! [ -e /tmp/update_dependencies ]
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
status="
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
version
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
1
|
+
# Function to setup environment for self-hosted runners.
|
|
2
|
+
self_hosted_helper() {
|
|
3
|
+
if ! command -v brew >/dev/null; then
|
|
4
|
+
step_log "Setup Brew"
|
|
5
|
+
get -q -e "/tmp/install.sh" "https://raw.githubusercontent.com/Homebrew/install/master/install.sh" && /tmp/install.sh >/dev/null 2>&1
|
|
6
|
+
add_log "${tick:?}" "Brew" "Installed Homebrew"
|
|
7
|
+
fi
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
# Disable dependency extensions
|
|
11
|
+
disable_dependency_extensions() {
|
|
12
|
+
local extension=$1
|
|
13
|
+
formula_file="$tap_dir/$ext_tap/Formula/$extension@${version:?}.rb"
|
|
14
|
+
if [ -e "$formula_file" ]; then
|
|
15
|
+
IFS=" " read -r -a dependency_extensions <<< "$(grep -Eo "shivammathur.*@" "$formula_file" | xargs -I {} -n 1 basename '{}' | cut -d '@' -f 1 | tr '\n' ' ')"
|
|
16
|
+
for dependency_extension in "${dependency_extensions[@]}"; do
|
|
17
|
+
sudo sed -Ei '' "/=(.*\/)?\"?$dependency_extension(.so)?$/d" "${ini_file:?}"
|
|
18
|
+
done
|
|
19
|
+
fi
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
# Helper function to disable an extension.
|
|
23
|
+
disable_extension_helper() {
|
|
24
|
+
local extension=$1
|
|
25
|
+
local disable_dependents=${2:-false}
|
|
26
|
+
if [ "$disable_dependents" = "true" ]; then
|
|
27
|
+
disable_extension_dependents "$extension"
|
|
28
|
+
fi
|
|
29
|
+
sudo sed -Ei '' "/=(.*\/)?\"?$extension(.so)?$/d" "${ini_file:?}"
|
|
30
|
+
sudo rm -rf "$scan_dir"/*"$extension"*
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
# Function to fetch a brew tap.
|
|
34
|
+
fetch_brew_tap() {
|
|
35
|
+
tap=$1
|
|
36
|
+
tap_user=$(dirname "$tap")
|
|
37
|
+
tap_name=$(basename "$tap")
|
|
38
|
+
mkdir -p "$tap_dir/$tap_user"
|
|
39
|
+
get -s -n "" "https://github.com/$tap/archive/master.tar.gz" | sudo tar -xzf - -C "$tap_dir/$tap_user"
|
|
40
|
+
if [ -d "$tap_dir/$tap_user/$tap_name-master" ]; then
|
|
41
|
+
sudo mv "$tap_dir/$tap_user/$tap_name-master" "$tap_dir/$tap_user/$tap_name"
|
|
42
|
+
fi
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
# Function to add a brew tap.
|
|
46
|
+
add_brew_tap() {
|
|
47
|
+
tap=$1
|
|
48
|
+
if ! [ -d "$tap_dir/$tap" ]; then
|
|
49
|
+
if [ "${runner:?}" = "self-hosted" ]; then
|
|
50
|
+
brew tap "$tap" >/dev/null 2>&1
|
|
51
|
+
else
|
|
52
|
+
fetch_brew_tap "$tap" >/dev/null 2>&1
|
|
53
|
+
if ! [ -d "$tap_dir/$tap" ]; then
|
|
54
|
+
brew tap "$tap" >/dev/null 2>&1
|
|
55
|
+
fi
|
|
56
|
+
fi
|
|
57
|
+
fi
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# Function to install a php extension from shivammathur/extensions tap.
|
|
61
|
+
add_brew_extension() {
|
|
62
|
+
formula=$1
|
|
63
|
+
prefix=$2
|
|
64
|
+
extension=$(grep "$formula=" "$dist"/../src/configs/brew_extensions | cut -d '=' -f 2)
|
|
65
|
+
[[ -z "$extension" ]] && extension="$(echo "$formula" | sed -E "s/pecl_|[0-9]//g")"
|
|
66
|
+
enable_extension "$extension" "$prefix"
|
|
67
|
+
if check_extension "$extension"; then
|
|
68
|
+
add_log "${tick:?}" "$extension" "Enabled"
|
|
69
|
+
else
|
|
70
|
+
add_brew_tap "$php_tap"
|
|
71
|
+
add_brew_tap "$ext_tap"
|
|
72
|
+
sudo mv "$tap_dir"/"$ext_tap"/.github/deps/"$formula"/* "$core_repo/Formula/" 2>/dev/null || true
|
|
73
|
+
update_dependencies >/dev/null 2>&1
|
|
74
|
+
disable_dependency_extensions "$extension" >/dev/null 2>&1
|
|
75
|
+
brew install -f "$formula@$version" >/dev/null 2>&1
|
|
76
|
+
sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
|
|
77
|
+
add_extension_log "$extension" "Installed and enabled"
|
|
78
|
+
fi
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# Function to setup extensions.
|
|
82
|
+
add_extension() {
|
|
83
|
+
local extension=$1
|
|
84
|
+
prefix=$2
|
|
85
|
+
enable_extension "$extension" "$prefix"
|
|
86
|
+
if check_extension "$extension"; then
|
|
87
|
+
add_log "${tick:?}" "$extension" "Enabled"
|
|
88
|
+
else
|
|
89
|
+
if [[ "$version" =~ ${old_versions:?} ]] && [ "$extension" = "imagick" ]; then
|
|
90
|
+
run_script "php5-darwin" "${version/./}" "$extension" >/dev/null 2>&1
|
|
91
|
+
else
|
|
92
|
+
pecl_install "$extension" >/dev/null 2>&1 &&
|
|
93
|
+
if [[ "$version" =~ ${old_versions:?} ]]; then echo "$prefix=$ext_dir/$extension.so" >>"$ini_file"; fi
|
|
94
|
+
fi
|
|
95
|
+
add_extension_log "$extension" "Installed and enabled"
|
|
96
|
+
fi
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
# Function to handle request to add phpize and php-config.
|
|
100
|
+
add_devtools() {
|
|
101
|
+
tool=$1
|
|
102
|
+
add_log "${tick:?}" "$tool" "Added $tool $semver"
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
# Function to handle request to add PECL.
|
|
106
|
+
add_pecl() {
|
|
107
|
+
configure_pecl >/dev/null 2>&1
|
|
108
|
+
pear_version=$(get_tool_version "pecl" "version")
|
|
109
|
+
add_log "${tick:?}" "PECL" "Found PECL $pear_version"
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
# Function to link all libraries of a formula.
|
|
113
|
+
link_libraries() {
|
|
114
|
+
formula=$1
|
|
115
|
+
formula_prefix="$(brew --prefix "$formula")"
|
|
116
|
+
sudo mkdir -p "$formula_prefix"/lib
|
|
117
|
+
for lib in "$formula_prefix"/lib/*.dylib; do
|
|
118
|
+
lib_name=$(basename "$lib")
|
|
119
|
+
sudo cp -a "$lib" "$brew_prefix/lib/$lib_name" 2>/dev/null || true
|
|
120
|
+
done
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
# Patch brew to overwrite packages.
|
|
124
|
+
patch_brew() {
|
|
125
|
+
formula_installer="$brew_repo"/Library/Homebrew/formula_installer.rb
|
|
126
|
+
code=" keg.link(verbose: verbose?"
|
|
127
|
+
sudo sed -i '' "s/$code)/$code, overwrite: true)/" "$formula_installer"
|
|
128
|
+
# shellcheck disable=SC2064
|
|
129
|
+
trap "sudo sed -i '' 's/$code, overwrite: true)/$code)/' $formula_installer" exit
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
# Helper function to update the dependencies.
|
|
133
|
+
update_dependencies_helper() {
|
|
134
|
+
dependency=$1
|
|
135
|
+
get -q -n "$core_repo/Formula/$dependency.rb" "https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/$dependency.rb"
|
|
136
|
+
link_libraries "$dependency"
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
# Function to update dependencies.
|
|
140
|
+
update_dependencies() {
|
|
141
|
+
if ! [ -e /tmp/update_dependencies ]; then
|
|
142
|
+
if [ "${runner:?}" != "self-hosted" ] && [ "${ImageOS:-}" != "" ] && [ "${ImageVersion:-}" != "" ]; then
|
|
143
|
+
patch_brew
|
|
144
|
+
while read -r dependency; do
|
|
145
|
+
update_dependencies_helper "$dependency" &
|
|
146
|
+
to_wait+=($!)
|
|
147
|
+
done <"$tap_dir/$php_tap/.github/deps/${ImageOS:?}_${ImageVersion:?}"
|
|
148
|
+
wait "${to_wait[@]}"
|
|
149
|
+
else
|
|
150
|
+
git -C "$core_repo" fetch origin master && git -C "$core_repo" reset --hard origin/master
|
|
151
|
+
fi
|
|
152
|
+
echo '' | sudo tee /tmp/update_dependencies >/dev/null 2>&1
|
|
153
|
+
fi
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
# Function to fix dependencies on install PHP version.
|
|
157
|
+
fix_dependencies() {
|
|
158
|
+
broken_deps_paths=$(php -v 2>&1 | grep -Eo '/opt/[a-zA-Z0-9@\.]+')
|
|
159
|
+
if [ "x$broken_deps_paths" != "x" ]; then
|
|
160
|
+
update_dependencies
|
|
161
|
+
IFS=" " read -r -a formulae <<< "$(echo "$broken_deps_paths" | tr '\n' ' ' | sed 's|/opt/||g' 2>&1)$php_formula"
|
|
162
|
+
brew reinstall "${formulae[@]}"
|
|
163
|
+
brew link --force --overwrite "$php_formula" || true
|
|
164
|
+
fi
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
# Function to get PHP version if it is already installed using Homebrew.
|
|
168
|
+
get_brewed_php() {
|
|
169
|
+
php_cellar="$brew_prefix"/Cellar/php
|
|
170
|
+
if [ -d "$php_cellar" ] && ! [[ "$(find "$php_cellar" -maxdepth 1 -name "$version*" | wc -l 2>/dev/null)" -eq 0 ]]; then
|
|
171
|
+
php-config --version 2>/dev/null | cut -c 1-3
|
|
172
|
+
else
|
|
173
|
+
echo 'false';
|
|
174
|
+
fi
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
# Function to setup PHP 5.6 and newer using Homebrew.
|
|
178
|
+
add_php() {
|
|
179
|
+
action=$1
|
|
180
|
+
existing_version=$2
|
|
181
|
+
add_brew_tap "$php_tap"
|
|
182
|
+
update_dependencies
|
|
183
|
+
if [ "$existing_version" != "false" ]; then
|
|
184
|
+
([ "$action" = "upgrade" ] && brew upgrade -f "$php_formula") || brew unlink "$php_formula"
|
|
185
|
+
else
|
|
186
|
+
brew install -f "$php_formula"
|
|
187
|
+
fi
|
|
188
|
+
brew link --force --overwrite "$php_formula"
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
# Function to get extra version.
|
|
192
|
+
php_extra_version() {
|
|
193
|
+
php_formula_file="$tap_dir"/"$php_tap"/Formula/php@"$version".rb
|
|
194
|
+
if [ -e "$php_formula_file" ] && ! grep -q "deprecate!" "$php_formula_file" && grep -Eq "archive/[0-9a-zA-Z]+" "$php_formula_file"; then
|
|
195
|
+
echo " ($(grep -Eo "archive/[0-9a-zA-Z]+" "$php_formula_file" | cut -d'/' -f 2))"
|
|
196
|
+
fi
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
# Function to Setup PHP.
|
|
200
|
+
setup_php() {
|
|
201
|
+
step_log "Setup PHP"
|
|
202
|
+
existing_version=$(get_brewed_php)
|
|
203
|
+
if [[ "$version" =~ ${old_versions:?} ]]; then
|
|
204
|
+
run_script "php5-darwin" "${version/./}" >/dev/null 2>&1
|
|
205
|
+
status="Installed"
|
|
206
|
+
elif [ "$existing_version" != "$version" ]; then
|
|
207
|
+
add_php "install" "$existing_version" >/dev/null 2>&1
|
|
208
|
+
status="Installed"
|
|
209
|
+
elif [ "$existing_version" = "$version" ] && [ "${update:?}" = "true" ]; then
|
|
210
|
+
add_php "upgrade" "$existing_version" >/dev/null 2>&1
|
|
211
|
+
status="Updated to"
|
|
212
|
+
else
|
|
213
|
+
status="Found"
|
|
214
|
+
fix_dependencies >/dev/null 2>&1
|
|
215
|
+
fi
|
|
216
|
+
ini_file=$(php -d "date.timezone=UTC" --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
|
217
|
+
sudo chmod 777 "$ini_file" "${tool_path_dir:?}"
|
|
218
|
+
configure_php
|
|
219
|
+
ext_dir=$(php -i | grep -Ei "extension_dir => /" | sed -e "s|.*=> s*||")
|
|
220
|
+
scan_dir=$(php --ini | grep additional | sed -e "s|.*: s*||")
|
|
221
|
+
sudo mkdir -m 777 -p "$ext_dir" "$HOME/.composer"
|
|
222
|
+
semver=$(php_semver)
|
|
223
|
+
extra_version=$(php_extra_version)
|
|
224
|
+
if [ "${semver%.*}" != "$version" ]; then
|
|
225
|
+
add_log "${cross:?}" "PHP" "Could not setup PHP $version"
|
|
226
|
+
exit 1
|
|
227
|
+
fi
|
|
228
|
+
|
|
229
|
+
sudo cp "$dist"/../src/configs/pm/*.json "$RUNNER_TOOL_CACHE/"
|
|
230
|
+
echo "::set-output name=php-version::$semver"
|
|
231
|
+
add_log "$tick" "PHP" "$status PHP $semver$extra_version"
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
# Variables
|
|
235
|
+
version=$1
|
|
236
|
+
dist=$2
|
|
237
|
+
php_formula=shivammathur/php/php@"$version"
|
|
238
|
+
brew_prefix="$(brew --prefix)"
|
|
239
|
+
brew_repo="$(brew --repository)"
|
|
240
|
+
tap_dir="$brew_repo"/Library/Taps
|
|
241
|
+
core_repo="$tap_dir"/homebrew/homebrew-core
|
|
242
|
+
scripts="${dist}"/../src/scripts
|
|
243
|
+
ext_tap=shivammathur/homebrew-extensions
|
|
244
|
+
php_tap=shivammathur/homebrew-php
|
|
245
|
+
export HOMEBREW_CHANGE_ARCH_TO_ARM=1
|
|
246
|
+
export HOMEBREW_DEVELOPER=1
|
|
247
|
+
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
|
248
|
+
export HOMEBREW_NO_AUTO_UPDATE=1
|
|
249
|
+
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
|
250
|
+
|
|
251
|
+
# shellcheck source=.
|
|
252
|
+
. "${scripts:?}"/ext/source.sh
|
|
253
|
+
. "${scripts:?}"/tools/add_tools.sh
|
|
254
|
+
. "${scripts:?}"/common.sh
|
|
255
|
+
read_env
|
|
256
|
+
self_hosted_setup
|
|
257
|
+
setup_php
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
# Function to install blackfire extension.
|
|
2
|
-
Function Add-Blackfire() {
|
|
3
|
-
Param (
|
|
4
|
-
[Parameter(Position = 0, Mandatory = $true)]
|
|
5
|
-
[ValidateNotNull()]
|
|
6
|
-
[string]
|
|
7
|
-
$extension
|
|
8
|
-
)
|
|
9
|
-
try {
|
|
10
|
-
$no_dot_version = $version.replace('.', '')
|
|
11
|
-
$extension_version = $extension.split('-')[1]
|
|
12
|
-
if ($extension_version -notmatch "\S") {
|
|
13
|
-
if($version -lt '7.0') {
|
|
14
|
-
$extension_version = '1.50.0'
|
|
15
|
-
} else {
|
|
16
|
-
$extension_version = (Invoke-RestMethod https://blackfire.io/api/v1/releases).probe.php
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
if (Test-Path $ext_dir\blackfire.dll) {
|
|
20
|
-
Enable-PhpExtension -Extension blackfire -Path $php_dir
|
|
21
|
-
$status="Enabled"
|
|
22
|
-
} else {
|
|
23
|
-
$nts = if (!$installed.ThreadSafe) { "_nts" } else { "" }
|
|
24
|
-
Invoke-WebRequest -Uri "https://packages.blackfire.io/binaries/blackfire-php/${extension_version}/blackfire-php-windows_${arch}-php-${no_dot_version}${nts}.dll" -OutFile $ext_dir\blackfire.dll > $null 2>&1
|
|
25
|
-
Enable-PhpExtension -Extension blackfire -Path $php_dir
|
|
26
|
-
$status="Installed and enabled"
|
|
27
|
-
}
|
|
28
|
-
Add-Log $tick $extension $status
|
|
29
|
-
} catch {
|
|
30
|
-
Add-Log $cross $extension "Could not install $extension on PHP $($installed.FullVersion)"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
# Function to install blackfire extension.
|
|
2
|
+
Function Add-Blackfire() {
|
|
3
|
+
Param (
|
|
4
|
+
[Parameter(Position = 0, Mandatory = $true)]
|
|
5
|
+
[ValidateNotNull()]
|
|
6
|
+
[string]
|
|
7
|
+
$extension
|
|
8
|
+
)
|
|
9
|
+
try {
|
|
10
|
+
$no_dot_version = $version.replace('.', '')
|
|
11
|
+
$extension_version = $extension.split('-')[1]
|
|
12
|
+
if ($extension_version -notmatch "\S") {
|
|
13
|
+
if($version -lt '7.0') {
|
|
14
|
+
$extension_version = '1.50.0'
|
|
15
|
+
} else {
|
|
16
|
+
$extension_version = (Invoke-RestMethod https://blackfire.io/api/v1/releases).probe.php
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (Test-Path $ext_dir\blackfire.dll) {
|
|
20
|
+
Enable-PhpExtension -Extension blackfire -Path $php_dir
|
|
21
|
+
$status="Enabled"
|
|
22
|
+
} else {
|
|
23
|
+
$nts = if (!$installed.ThreadSafe) { "_nts" } else { "" }
|
|
24
|
+
Invoke-WebRequest -Uri "https://packages.blackfire.io/binaries/blackfire-php/${extension_version}/blackfire-php-windows_${arch}-php-${no_dot_version}${nts}.dll" -OutFile $ext_dir\blackfire.dll > $null 2>&1
|
|
25
|
+
Enable-PhpExtension -Extension blackfire -Path $php_dir
|
|
26
|
+
$status="Installed and enabled"
|
|
27
|
+
}
|
|
28
|
+
Add-Log $tick $extension $status
|
|
29
|
+
} catch {
|
|
30
|
+
Add-Log $cross $extension "Could not install $extension on PHP $($installed.FullVersion)"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
# Function to install blackfire extension.
|
|
2
|
-
add_blackfire() {
|
|
3
|
-
extension=$1
|
|
4
|
-
version=${version:?}
|
|
5
|
-
no_dot_version=${version/./}
|
|
6
|
-
platform=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
7
|
-
extension_version=$(echo "$extension" | cut -d '-' -f 2)
|
|
8
|
-
|
|
9
|
-
if
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
# Function to install blackfire extension.
|
|
2
|
+
add_blackfire() {
|
|
3
|
+
local extension=$1
|
|
4
|
+
version=${version:?}
|
|
5
|
+
no_dot_version=${version/./}
|
|
6
|
+
platform=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
7
|
+
extension_version=$(echo "$extension" | cut -d '-' -f 2)
|
|
8
|
+
status='Enabled'
|
|
9
|
+
if ! shared_extension blackfire; then
|
|
10
|
+
status='Installed and enabled'
|
|
11
|
+
if [ "$extension_version" = "blackfire" ]; then
|
|
12
|
+
if [[ ${version:?} =~ 5.[3-6] ]]; then
|
|
13
|
+
extension_version='1.50.0'
|
|
14
|
+
else
|
|
15
|
+
extension_version=$(get -s -n "" https://blackfire.io/api/v1/releases | grep -Eo 'php":"([0-9]+.[0-9]+.[0-9]+)' | cut -d '"' -f 3)
|
|
16
|
+
fi
|
|
17
|
+
fi
|
|
18
|
+
get -q -n "${ext_dir:?}/blackfire.so" https://packages.blackfire.io/binaries/blackfire-php/"$extension_version"/blackfire-php-"$platform"_amd64-php-"$no_dot_version".so >/dev/null 2>&1
|
|
19
|
+
fi
|
|
20
|
+
enable_extension blackfire extension
|
|
21
|
+
add_extension_log blackfire "$status"
|
|
22
|
+
}
|