mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-07-06 15:13:18 +07:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
6dba529f13 | |||
e9a7adef28 | |||
bceb2ef3d8 | |||
86e7315da6 | |||
0741f2b23a | |||
0c4c4d5441 | |||
abfbe6a46b | |||
62aa8428dd | |||
e6a3eb1258 | |||
0ce7328fd7 | |||
6e76d3f012 | |||
ac40fdb561 | |||
890ea4bca9 |
@ -876,7 +876,6 @@ Examples of using `setup-php` with various PHP Frameworks and Packages.
|
|||||||
|
|
||||||
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
|
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
|
||||||
- [aaronparker/VcRedist](https://github.com/aaronparker/VcRedist "VcRedist PowerShell package")
|
- [aaronparker/VcRedist](https://github.com/aaronparker/VcRedist "VcRedist PowerShell package")
|
||||||
- [gplessis/dotdeb-php](https://github.com/gplessis/dotdeb-php "Packaging for end of life PHP versions")
|
|
||||||
- [mlocati/powershell-phpmanager](https://github.com/mlocati/powershell-phpmanager "Package to handle PHP on windows")
|
- [mlocati/powershell-phpmanager](https://github.com/mlocati/powershell-phpmanager "Package to handle PHP on windows")
|
||||||
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Packaging active PHP packages")
|
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Packaging active PHP packages")
|
||||||
- [shivammathur/cache-extensions](https://github.com/shivammathur/cache-extensions "GitHub action to help with caching PHP extensions")
|
- [shivammathur/cache-extensions](https://github.com/shivammathur/cache-extensions "GitHub action to help with caching PHP extensions")
|
||||||
|
48
dist/index.js
vendored
48
dist/index.js
vendored
@ -1677,10 +1677,14 @@ const config = __importStar(__nccwpck_require__(373));
|
|||||||
* @param pipe
|
* @param pipe
|
||||||
*/
|
*/
|
||||||
async function addCoverageXdebug(extension, version, os_version, pipe) {
|
async function addCoverageXdebug(extension, version, os_version, pipe) {
|
||||||
const xdebug = (await extensions.addExtension(extension, version, os_version, true)) +
|
let script = '\n';
|
||||||
pipe;
|
script +=
|
||||||
const log = await utils.addLog('$tick', extension, 'Xdebug enabled as coverage driver', os_version);
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
return xdebug + '\n' + log;
|
script +=
|
||||||
|
(await extensions.addExtension(extension, version, os_version, true)) +
|
||||||
|
pipe;
|
||||||
|
script += await utils.addLog('$tick', extension, 'Xdebug enabled as coverage driver', os_version);
|
||||||
|
return script;
|
||||||
}
|
}
|
||||||
exports.addCoverageXdebug = addCoverageXdebug;
|
exports.addCoverageXdebug = addCoverageXdebug;
|
||||||
/**
|
/**
|
||||||
@ -1694,22 +1698,14 @@ async function addCoveragePCOV(version, os_version, pipe) {
|
|||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (true) {
|
switch (true) {
|
||||||
default:
|
default:
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
|
pipe;
|
||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension('pcov', version, os_version, true)) +
|
(await extensions.addExtension('pcov', version, os_version, true)) +
|
||||||
pipe +
|
pipe;
|
||||||
'\n';
|
|
||||||
script +=
|
script +=
|
||||||
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
||||||
// add command to disable xdebug and enable pcov
|
|
||||||
switch (os_version) {
|
|
||||||
case 'linux':
|
|
||||||
case 'darwin':
|
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// success
|
// success
|
||||||
script += await utils.addLog('$tick', 'coverage: pcov', 'PCOV enabled as coverage driver', os_version);
|
script += await utils.addLog('$tick', 'coverage: pcov', 'PCOV enabled as coverage driver', os_version);
|
||||||
// version is not supported
|
// version is not supported
|
||||||
@ -1730,17 +1726,11 @@ exports.addCoveragePCOV = addCoveragePCOV;
|
|||||||
*/
|
*/
|
||||||
async function disableCoverage(version, os_version, pipe) {
|
async function disableCoverage(version, os_version, pipe) {
|
||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (os_version) {
|
script +=
|
||||||
case 'linux':
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
case 'darwin':
|
script +=
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
script += 'remove_extension pcov' + pipe + '\n';
|
pipe;
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
script += 'Remove-Extension pcov' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
script += await utils.addLog('$tick', 'none', 'Disabled Xdebug and PCOV', os_version);
|
script += await utils.addLog('$tick', 'none', 'Disabled Xdebug and PCOV', os_version);
|
||||||
return script;
|
return script;
|
||||||
}
|
}
|
||||||
@ -1755,7 +1745,7 @@ exports.disableCoverage = disableCoverage;
|
|||||||
async function addCoverage(coverage_driver, version, os_version) {
|
async function addCoverage(coverage_driver, version, os_version) {
|
||||||
coverage_driver = coverage_driver.toLowerCase();
|
coverage_driver = coverage_driver.toLowerCase();
|
||||||
const script = '\n' + (await utils.stepLog('Setup Coverage', os_version));
|
const script = '\n' + (await utils.stepLog('Setup Coverage', os_version));
|
||||||
const pipe = await utils.suppressOutput(os_version);
|
const pipe = (await utils.suppressOutput(os_version)) + '\n';
|
||||||
switch (coverage_driver) {
|
switch (coverage_driver) {
|
||||||
case 'pcov':
|
case 'pcov':
|
||||||
return script + (await addCoveragePCOV(version, os_version, pipe));
|
return script + (await addCoveragePCOV(version, os_version, pipe));
|
||||||
@ -1984,7 +1974,7 @@ async function addExtensionLinux(extension_csv, version) {
|
|||||||
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4]|8\.0)blackfire(-\d+\.\d+\.\d+)?$/.test(version_extension):
|
||||||
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension):
|
case /^((5\.[3-6])|(7\.[0-2]))pdo_cubrid$|^((5\.[3-6])|(7\.[0-4]))cubrid$/.test(version_extension):
|
||||||
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(extension):
|
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(extension):
|
||||||
case /^(5\.6|7\.[0-4]|8\.0)intl-[\d]+\.[\d]+$/.test(version_extension):
|
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
||||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
||||||
|
@ -16,16 +16,19 @@ export async function addCoverageXdebug(
|
|||||||
os_version: string,
|
os_version: string,
|
||||||
pipe: string
|
pipe: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const xdebug =
|
let script = '\n';
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
|
script +=
|
||||||
(await extensions.addExtension(extension, version, os_version, true)) +
|
(await extensions.addExtension(extension, version, os_version, true)) +
|
||||||
pipe;
|
pipe;
|
||||||
const log = await utils.addLog(
|
script += await utils.addLog(
|
||||||
'$tick',
|
'$tick',
|
||||||
extension,
|
extension,
|
||||||
'Xdebug enabled as coverage driver',
|
'Xdebug enabled as coverage driver',
|
||||||
os_version
|
os_version
|
||||||
);
|
);
|
||||||
return xdebug + '\n' + log;
|
return script;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -43,24 +46,15 @@ export async function addCoveragePCOV(
|
|||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (true) {
|
switch (true) {
|
||||||
default:
|
default:
|
||||||
|
script +=
|
||||||
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
|
pipe;
|
||||||
script +=
|
script +=
|
||||||
(await extensions.addExtension('pcov', version, os_version, true)) +
|
(await extensions.addExtension('pcov', version, os_version, true)) +
|
||||||
pipe +
|
pipe;
|
||||||
'\n';
|
|
||||||
script +=
|
script +=
|
||||||
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
(await config.addINIValues('pcov.enabled=1', os_version, true)) + '\n';
|
||||||
|
|
||||||
// add command to disable xdebug and enable pcov
|
|
||||||
switch (os_version) {
|
|
||||||
case 'linux':
|
|
||||||
case 'darwin':
|
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// success
|
// success
|
||||||
script += await utils.addLog(
|
script += await utils.addLog(
|
||||||
'$tick',
|
'$tick',
|
||||||
@ -97,17 +91,11 @@ export async function disableCoverage(
|
|||||||
pipe: string
|
pipe: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
let script = '\n';
|
let script = '\n';
|
||||||
switch (os_version) {
|
script +=
|
||||||
case 'linux':
|
(await extensions.addExtension(':pcov', version, os_version, true)) + pipe;
|
||||||
case 'darwin':
|
script +=
|
||||||
script += 'remove_extension xdebug' + pipe + '\n';
|
(await extensions.addExtension(':xdebug', version, os_version, true)) +
|
||||||
script += 'remove_extension pcov' + pipe + '\n';
|
pipe;
|
||||||
break;
|
|
||||||
case 'win32':
|
|
||||||
script += 'Remove-Extension xdebug' + pipe + '\n';
|
|
||||||
script += 'Remove-Extension pcov' + pipe + '\n';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
script += await utils.addLog(
|
script += await utils.addLog(
|
||||||
'$tick',
|
'$tick',
|
||||||
'none',
|
'none',
|
||||||
@ -133,7 +121,7 @@ export async function addCoverage(
|
|||||||
coverage_driver = coverage_driver.toLowerCase();
|
coverage_driver = coverage_driver.toLowerCase();
|
||||||
const script: string =
|
const script: string =
|
||||||
'\n' + (await utils.stepLog('Setup Coverage', os_version));
|
'\n' + (await utils.stepLog('Setup Coverage', os_version));
|
||||||
const pipe: string = await utils.suppressOutput(os_version);
|
const pipe: string = (await utils.suppressOutput(os_version)) + '\n';
|
||||||
switch (coverage_driver) {
|
switch (coverage_driver) {
|
||||||
case 'pcov':
|
case 'pcov':
|
||||||
return script + (await addCoveragePCOV(version, os_version, pipe));
|
return script + (await addCoveragePCOV(version, os_version, pipe));
|
||||||
|
@ -259,7 +259,7 @@ export async function addExtensionLinux(
|
|||||||
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(
|
case /^couchbase$|^pdo_oci$|^oci8$|^http|^pecl_http|^pdo_firebird$/.test(
|
||||||
extension
|
extension
|
||||||
):
|
):
|
||||||
case /^(5\.6|7\.[0-4]|8\.0)intl-[\d]+\.[\d]+$/.test(version_extension):
|
case /(?<!5\.[3-5])intl-[\d]+\.[\d]+$/.test(version_extension):
|
||||||
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
case /^(5\.[3-6]|7\.[0-4])(ioncube|geos)$/.test(version_extension):
|
||||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
case /^((5\.6)|(7\.[0-4]))gearman$/.test(version_extension):
|
||||||
|
@ -12,7 +12,7 @@ export composer_json="$HOME/.composer/composer.json"
|
|||||||
export composer_lock="$HOME/.composer/composer.lock"
|
export composer_lock="$HOME/.composer/composer.lock"
|
||||||
export latest="releases/latest/download"
|
export latest="releases/latest/download"
|
||||||
export github="https://github.com/shivammathur"
|
export github="https://github.com/shivammathur"
|
||||||
export bintray="https://dl.bintray/shivammathur"
|
export jsdeliver="https://cdn.jsdelivr.net/gh/shivammathur"
|
||||||
|
|
||||||
# Function to log start of a operation.
|
# Function to log start of a operation.
|
||||||
step_log() {
|
step_log() {
|
||||||
@ -73,12 +73,12 @@ get() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to download and run scripts from GitHub releases with bintray fallback.
|
# Function to download and run scripts from GitHub releases with jsdeliver fallback.
|
||||||
run_script() {
|
run_script() {
|
||||||
repo=$1
|
repo=$1
|
||||||
shift
|
shift
|
||||||
args=("$@")
|
args=("$@")
|
||||||
get -q -e /tmp/install.sh "$github/$repo/$latest/install.sh" "$bintray/php/$repo.sh"
|
get -q -e /tmp/install.sh "$github/$repo/$latest/install.sh" "$jsdeliver/$1@main/scripts/install.sh"
|
||||||
bash /tmp/install.sh "${args[@]}"
|
bash /tmp/install.sh "${args[@]}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,12 +104,33 @@ check_extension() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to enable cached extensions.
|
||||||
|
enable_cache_extension() {
|
||||||
|
deps=()
|
||||||
|
for ext in /tmp/extcache/"$1"/*; do
|
||||||
|
deps+=("$(basename "$ext")")
|
||||||
|
done
|
||||||
|
if [ "x${deps[*]}" = "x" ]; then
|
||||||
|
sudo rm -rf /tmp/extcache/"$1"
|
||||||
|
enable_extension "$1" "$2"
|
||||||
|
else
|
||||||
|
deps+=("$1")
|
||||||
|
if php "${deps[@]/#/-d ${2}=}" -m 2>/dev/null | grep -i -q "$1"; then
|
||||||
|
for ext in "${deps[@]}"; do
|
||||||
|
sudo rm -rf /tmp/extcache/"$ext"
|
||||||
|
enable_extension "$ext" "$2"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Function to enable existing extensions.
|
# Function to enable existing extensions.
|
||||||
enable_extension() {
|
enable_extension() {
|
||||||
if [ -e /tmp/setup_php_dismod ] && grep -q "$1" /tmp/setup_php_dismod; then
|
modules_dir="/var/lib/php/modules/$version"
|
||||||
sudo phpenmod -v "$version" "$1" >/dev/null 2>&1
|
[ -d "$modules_dir" ] && sudo find "$modules_dir" -path "*disabled*$1" -delete
|
||||||
fi
|
if [ -d /tmp/extcache/"$1" ]; then
|
||||||
if ! check_extension "$1" && [ -e "${ext_dir:?}/$1.so" ]; then
|
enable_cache_extension "$1" "$2"
|
||||||
|
elif ! check_extension "$1" && [ -e "${ext_dir:?}/$1.so" ]; then
|
||||||
echo "$2=${ext_dir:?}/$1.so" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null
|
echo "$2=${ext_dir:?}/$1.so" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -193,7 +214,8 @@ configure_composer() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if ! [ -e "$composer_json" ]; then
|
if ! [ -e "$composer_json" ]; then
|
||||||
echo '{}' | tee "$composer_json" >/dev/null 2>&1
|
sudo mkdir -p "$(dirname "$composer_json")"
|
||||||
|
echo '{}' | tee "$composer_json" >/dev/null
|
||||||
sudo chmod 644 "$composer_json"
|
sudo chmod 644 "$composer_json"
|
||||||
fi
|
fi
|
||||||
composer -q config -g process-timeout 0
|
composer -q config -g process-timeout 0
|
||||||
|
@ -78,7 +78,7 @@ add_brew_extension() {
|
|||||||
add_brew_tap shivammathur/homebrew-php
|
add_brew_tap shivammathur/homebrew-php
|
||||||
add_brew_tap shivammathur/homebrew-extensions
|
add_brew_tap shivammathur/homebrew-extensions
|
||||||
sudo mv "$tap_dir"/shivammathur/homebrew-extensions/.github/deps/"$formula"/* "$tap_dir/homebrew/homebrew-core/Formula/" 2>/dev/null || true
|
sudo mv "$tap_dir"/shivammathur/homebrew-extensions/.github/deps/"$formula"/* "$tap_dir/homebrew/homebrew-core/Formula/" 2>/dev/null || true
|
||||||
brew install "$formula@$version" >/dev/null 2>&1
|
brew install -f "$formula@$version" >/dev/null 2>&1
|
||||||
sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
|
sudo cp "$brew_prefix/opt/$formula@$version/$extension.so" "$ext_dir"
|
||||||
add_extension_log "$extension" "Installed and enabled"
|
add_extension_log "$extension" "Installed and enabled"
|
||||||
fi
|
fi
|
||||||
@ -92,7 +92,7 @@ add_extension() {
|
|||||||
if check_extension "$extension"; then
|
if check_extension "$extension"; then
|
||||||
add_log "${tick:?}" "$extension" "Enabled"
|
add_log "${tick:?}" "$extension" "Enabled"
|
||||||
else
|
else
|
||||||
[[ "$version" =~ 5.[4-5] ]] && [ "$extension" = "imagick" ] && brew install pkg-config imagemagick >/dev/null 2>&1
|
[[ "$version" =~ 5.[4-5] ]] && [ "$extension" = "imagick" ] && brew install -f pkg-config imagemagick >/dev/null 2>&1
|
||||||
pecl_install "$extension" >/dev/null 2>&1 &&
|
pecl_install "$extension" >/dev/null 2>&1 &&
|
||||||
if [[ "$version" =~ ${old_versions:?} ]]; then echo "$prefix=$ext_dir/$extension.so" >>"$ini_file"; fi
|
if [[ "$version" =~ ${old_versions:?} ]]; then echo "$prefix=$ext_dir/$extension.so" >>"$ini_file"; fi
|
||||||
add_extension_log "$extension" "Installed and enabled"
|
add_extension_log "$extension" "Installed and enabled"
|
||||||
@ -116,7 +116,11 @@ link_libraries() {
|
|||||||
formula=$1
|
formula=$1
|
||||||
formula_prefix="$(brew --prefix "$formula")"
|
formula_prefix="$(brew --prefix "$formula")"
|
||||||
sudo mkdir -p "$formula_prefix"/lib
|
sudo mkdir -p "$formula_prefix"/lib
|
||||||
sudo cp -a "$formula_prefix"/lib/*.dylib "$brew_prefix/lib" 2>/dev/null || true
|
for lib in "$formula_prefix"/lib/*.dylib; do
|
||||||
|
lib_name=$(basename "$lib")
|
||||||
|
sudo cp -a "$lib" "$brew_prefix/lib/old_$lib_name" 2>/dev/null || true
|
||||||
|
sudo ln -sf "$brew_prefix"/lib/old_$lib_name "$brew_prefix/lib/$lib_name"
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
update_dependencies_helper() {
|
update_dependencies_helper() {
|
||||||
@ -144,7 +148,7 @@ add_php() {
|
|||||||
if ! [[ "$(find "$(brew --cellar)"/php/ -maxdepth 1 -name "$version*" | wc -l 2>/dev/null)" -eq 0 ]] && [ "$action" != "upgrade" ]; then
|
if ! [[ "$(find "$(brew --cellar)"/php/ -maxdepth 1 -name "$version*" | wc -l 2>/dev/null)" -eq 0 ]] && [ "$action" != "upgrade" ]; then
|
||||||
brew unlink shivammathur/php/php@"$version"
|
brew unlink shivammathur/php/php@"$version"
|
||||||
else
|
else
|
||||||
brew upgrade "shivammathur/php/php@$version" 2>/dev/null || brew install "shivammathur/php/php@$version"
|
brew upgrade -f "shivammathur/php/php@$version" 2>/dev/null || brew install -f "shivammathur/php/php@$version"
|
||||||
fi
|
fi
|
||||||
brew link --force --overwrite shivammathur/php/php@"$version"
|
brew link --force --overwrite shivammathur/php/php@"$version"
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
install_icu() {
|
install_icu() {
|
||||||
icu=$1
|
icu=$1
|
||||||
if [ "$(php -i | grep "ICU version =>" | sed -e "s|.*=> s*||")" != "$icu" ]; then
|
if [ "$(php -i | grep "ICU version =>" | sed -e "s|.*=> s*||")" != "$icu" ]; then
|
||||||
get -q -n /tmp/icu.tar.zst "https://dl.bintray.com/shivammathur/icu4c/icu4c-$icu.tar.zst"
|
get -q -n /tmp/icu.tar.zst "https://github.com/shivammathur/icu-intl/releases/download/icu4c/icu4c-$icu.tar.zst"
|
||||||
sudo tar -I zstd -xf /tmp/icu.tar.zst -C /usr/local
|
sudo tar -I zstd -xf /tmp/icu.tar.zst -C /usr/local
|
||||||
sudo cp -r /usr/local/icu/lib/* /usr/lib/x86_64-linux-gnu/
|
sudo cp -r /usr/local/icu/lib/* /usr/lib/x86_64-linux-gnu/
|
||||||
fi
|
fi
|
||||||
@ -11,12 +11,12 @@ install_icu() {
|
|||||||
# Function to add ext-intl with the given version of ICU
|
# Function to add ext-intl with the given version of ICU
|
||||||
add_intl() {
|
add_intl() {
|
||||||
icu=$(echo "$1" | cut -d'-' -f 2)
|
icu=$(echo "$1" | cut -d'-' -f 2)
|
||||||
supported_version=$(get -s -n "" https://api.bintray.com/packages/shivammathur/icu4c/icu4c | grep -Po "$icu" | head -n 1)
|
supported_version=$(get -s -n "" https://api.github.com/repos/shivammathur/icu-intl/releases | grep -Po "${icu//./\\.}" | head -n 1)
|
||||||
if [ "$icu" != "$supported_version" ]; then
|
if [ "$icu" != "$supported_version" ]; then
|
||||||
add_log "${cross:?}" "intl" "ICU $icu is not supported"
|
add_log "${cross:?}" "intl" "ICU $icu is not supported"
|
||||||
else
|
else
|
||||||
install_icu "$icu" >/dev/null 2>&1
|
install_icu "$icu" >/dev/null 2>&1
|
||||||
get -q -n "${ext_dir:?}/intl.so" "https://dl.bintray.com/shivammathur/icu4c/php${version:?}-intl-$icu.so"
|
get -q -n "${ext_dir:?}/intl.so" "https://github.com/shivammathur/icu-intl/releases/download/intl/php${version:?}-intl-$icu.so"
|
||||||
enable_extension intl extension
|
enable_extension intl extension
|
||||||
add_extension_log intl "Installed and enabled with ICU $icu"
|
add_extension_log intl "Installed and enabled with ICU $icu"
|
||||||
fi
|
fi
|
||||||
|
@ -13,7 +13,6 @@ cleanup_lists() {
|
|||||||
sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d.save
|
sudo mv /etc/apt/sources.list.d /etc/apt/sources.list.d.save
|
||||||
sudo mkdir /etc/apt/sources.list.d
|
sudo mkdir /etc/apt/sources.list.d
|
||||||
sudo mv /etc/apt/sources.list.d.save/*ondrej*.list /etc/apt/sources.list.d/
|
sudo mv /etc/apt/sources.list.d.save/*ondrej*.list /etc/apt/sources.list.d/
|
||||||
sudo mv /etc/apt/sources.list.d.save/*dotdeb*.list /etc/apt/sources.list.d/ 2>/dev/null || true
|
|
||||||
trap "sudo mv /etc/apt/sources.list.d.save/*.list /etc/apt/sources.list.d/ 2>/dev/null" exit
|
trap "sudo mv /etc/apt/sources.list.d.save/*.list /etc/apt/sources.list.d/ 2>/dev/null" exit
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -58,9 +57,7 @@ delete_extension() {
|
|||||||
extension=$1
|
extension=$1
|
||||||
disable_extension "$extension"
|
disable_extension "$extension"
|
||||||
sudo rm -rf "$ext_dir"/"$extension".so >/dev/null 2>&1
|
sudo rm -rf "$ext_dir"/"$extension".so >/dev/null 2>&1
|
||||||
if [ "${runner:?}" = "self-hosted" ]; then
|
sudo sed -i "/Package: php$version-$extension/,/^$/d" /var/lib/dpkg/status
|
||||||
$apt_remove "php-$extension" "php$version-$extension" >/dev/null 2>&1 || true
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to disable and delete extensions.
|
# Function to disable and delete extensions.
|
||||||
@ -69,7 +66,6 @@ remove_extension() {
|
|||||||
if check_extension "$extension"; then
|
if check_extension "$extension"; then
|
||||||
if [[ ! "$version" =~ ${old_versions:?} ]] && [ -e /etc/php/"$version"/mods-available/"$extension".ini ]; then
|
if [[ ! "$version" =~ ${old_versions:?} ]] && [ -e /etc/php/"$version"/mods-available/"$extension".ini ]; then
|
||||||
sudo phpdismod -v "$version" "$extension" >/dev/null 2>&1
|
sudo phpdismod -v "$version" "$extension" >/dev/null 2>&1
|
||||||
echo "$extension" | sudo tee -a /tmp/setup_php_dismod >/dev/null 2>&1
|
|
||||||
fi
|
fi
|
||||||
delete_extension "$extension"
|
delete_extension "$extension"
|
||||||
(! check_extension "$extension" && add_log "${tick:?}" ":$extension" "Removed") ||
|
(! check_extension "$extension" && add_log "${tick:?}" ":$extension" "Removed") ||
|
||||||
@ -117,9 +113,7 @@ add_extension() {
|
|||||||
if check_extension "$extension"; then
|
if check_extension "$extension"; then
|
||||||
add_log "${tick:?}" "$extension" "Enabled"
|
add_log "${tick:?}" "$extension" "Enabled"
|
||||||
else
|
else
|
||||||
if [[ "$version" =~ 5.[4-5] ]]; then
|
if [[ "$version" =~ ${nightly_versions:?} ]]; then
|
||||||
install_packages "php5-$extension=$release_version"
|
|
||||||
elif [[ "$version" =~ ${nightly_versions:?} ]]; then
|
|
||||||
pecl_install "$extension"
|
pecl_install "$extension"
|
||||||
else
|
else
|
||||||
install_packages "php$version-$extension" || pecl_install "$extension"
|
install_packages "php$version-$extension" || pecl_install "$extension"
|
||||||
@ -163,12 +157,12 @@ add_devtools() {
|
|||||||
# Function to setup the nightly build from shivammathur/php-builder
|
# Function to setup the nightly build from shivammathur/php-builder
|
||||||
setup_nightly() {
|
setup_nightly() {
|
||||||
run_script "php-builder" "$runner" "$version"
|
run_script "php-builder" "$runner" "$version"
|
||||||
|
extra_version="($(cat "/etc/php/$version/COMMIT"))"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to setup PHP 5.3, PHP 5.4 and PHP 5.5.
|
# Function to setup PHP 5.3, PHP 5.4 and PHP 5.5.
|
||||||
setup_old_versions() {
|
setup_old_versions() {
|
||||||
run_script "php5-ubuntu" "$version"
|
run_script "php5-ubuntu" "$version"
|
||||||
release_version=$(php -v | head -n 1 | cut -d' ' -f 2)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to add PECL.
|
# Function to add PECL.
|
||||||
@ -276,7 +270,7 @@ setup_php() {
|
|||||||
sudo rm -rf /usr/local/bin/phpunit >/dev/null 2>&1
|
sudo rm -rf /usr/local/bin/phpunit >/dev/null 2>&1
|
||||||
sudo chmod 777 "${ini_file[@]}" "$pecl_file" "${tool_path_dir:?}"
|
sudo chmod 777 "${ini_file[@]}" "$pecl_file" "${tool_path_dir:?}"
|
||||||
sudo cp "$dist"/../src/configs/*.json "$RUNNER_TOOL_CACHE/"
|
sudo cp "$dist"/../src/configs/*.json "$RUNNER_TOOL_CACHE/"
|
||||||
add_log "${tick:?}" "PHP" "$status PHP $semver"
|
add_log "${tick:?}" "PHP" "$status PHP $semver $extra_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Variables
|
# Variables
|
||||||
|
@ -333,8 +333,8 @@ $cross = ([char]10007)
|
|||||||
$php_dir = 'C:\tools\php'
|
$php_dir = 'C:\tools\php'
|
||||||
$ext_dir = "$php_dir\ext"
|
$ext_dir = "$php_dir\ext"
|
||||||
$bin_dir = $php_dir
|
$bin_dir = $php_dir
|
||||||
$bintray = 'https://dl.bintray.com/shivammathur/php'
|
|
||||||
$github = 'https://github.com'
|
$github = 'https://github.com'
|
||||||
|
$php_builder = "$github/shivammathur/php-builder-windows"
|
||||||
$composer_bin = "$env:APPDATA\Composer\vendor\bin"
|
$composer_bin = "$env:APPDATA\Composer\vendor\bin"
|
||||||
$composer_json = "$env:APPDATA\Composer\composer.json"
|
$composer_json = "$env:APPDATA\Composer\composer.json"
|
||||||
$composer_lock = "$env:APPDATA\Composer\composer.lock"
|
$composer_lock = "$env:APPDATA\Composer\composer.lock"
|
||||||
@ -401,7 +401,7 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if ($version -match $nightly_versions) {
|
if ($version -match $nightly_versions) {
|
||||||
Invoke-WebRequest -UseBasicParsing -Uri https://github.com/shivammathur/php-builder-windows/releases/latest/download/Get-PhpNightly.ps1 -OutFile $php_dir\Get-PhpNightly.ps1 > $null 2>&1
|
Invoke-WebRequest -UseBasicParsing -Uri $php_builder/releases/latest/download/Get-PhpNightly.ps1 -OutFile $php_dir\Get-PhpNightly.ps1 > $null 2>&1
|
||||||
& $php_dir\Get-PhpNightly.ps1 -Architecture $arch -ThreadSafe $ts -Path $php_dir > $null 2>&1
|
& $php_dir\Get-PhpNightly.ps1 -Architecture $arch -ThreadSafe $ts -Path $php_dir > $null 2>&1
|
||||||
} else {
|
} else {
|
||||||
Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni Production -Force > $null 2>&1
|
Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni Production -Force > $null 2>&1
|
||||||
@ -426,7 +426,7 @@ if($installed.MajorMinorVersion -ne $version) {
|
|||||||
}
|
}
|
||||||
('date.timezone=UTC', 'memory_limit=-1', 'xdebug.mode=coverage') | ForEach-Object { $p=$_.split('='); Set-PhpIniKey -Key $p[0] -Value $p[1] -Path $php_dir }
|
('date.timezone=UTC', 'memory_limit=-1', 'xdebug.mode=coverage') | ForEach-Object { $p=$_.split('='); Set-PhpIniKey -Key $p[0] -Value $p[1] -Path $php_dir }
|
||||||
if($version -lt "5.5") {
|
if($version -lt "5.5") {
|
||||||
('libeay32.dll', 'ssleay32.dll') | ForEach-Object { Invoke-WebRequest -Uri $bintray/$_ -OutFile $php_dir\$_ >$null 2>&1 }
|
('libeay32.dll', 'ssleay32.dll') | ForEach-Object { Invoke-WebRequest -Uri "$php_builder/releases/download/openssl-1.0.2u/$_" -OutFile $php_dir\$_ >$null 2>&1 }
|
||||||
} else {
|
} else {
|
||||||
$enable_extensions += ('opcache')
|
$enable_extensions += ('opcache')
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user