Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fbdd58c5bc | ||
|
|
2c5cb7a75e | ||
|
|
ab12e42197 | ||
|
|
5588437714 |
@@ -416,33 +416,23 @@ Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "sh
|
|||||||
|
|
||||||
## :sparkling_heart: Support This Project
|
## :sparkling_heart: Support This Project
|
||||||
|
|
||||||
- This project is provided as Free and Open-Source software. We need funds to maintain and do future improvements. Please sponsor setup-php using [GitHub sponsors](https://github.com/sponsors/shivammathur).
|
Please sponsor setup-php using [GitHub sponsors](https://github.com/sponsors/shivammathur).
|
||||||
|
|
||||||
|
[](https://github.com/sponsors/shivammathur)
|
||||||
|
|
||||||
### Corporate Sponsors
|
### Corporate Sponsors
|
||||||
|
|
||||||
<p>
|
<p align="center">
|
||||||
<a href="https://www.jetbrains.com/?from=setup-php">
|
<a href="https://setup-php.com/sponsors-corp/?">
|
||||||
<img src="https://setup-php.com/sponsors/jetbrains.svg" alt="JetBrains" width="106" height="60">
|
<img src="https://setup-php.com/sponsors-corp/?" alt="Corporate sponsors of setup-php and related projects" width="100%">
|
||||||
</a>
|
|
||||||
|
|
||||||
<a href="https://blackfire.io/?utm_source=setup-php">
|
|
||||||
<img src="https://setup-php.com/sponsors//blackfire.svg" alt="Blackfire" width="212" height="60">
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a href="https://www.macstadium.com/?source=setup-php">
|
|
||||||
<img src="https://setup-php.com/sponsors//macstadium.png" alt="Mac Stadium" width="148" height="60">
|
|
||||||
</a>
|
|
||||||
|
|
||||||
<a href="https://tidelift.com/subscription/pkg/npm-setup-php">
|
|
||||||
<img src="https://setup-php.com/sponsors//tidelift.png" alt="Tidelift" width="70" height="60">
|
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
### Individual Sponsors
|
### Individual Sponsors
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/sponsors/shivammathur">
|
<a href="https://setup-php.com/sponsors/?">
|
||||||
<img src="https://setup-php.com/sponsors/?" alt="Sponsors of setup-php and related projects" width="100%">
|
<img src="https://setup-php.com/sponsors/?" alt="Individual sponsors of setup-php and related projects" width="100%">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|||||||
@@ -73,12 +73,13 @@ describe('Extension tests', () => {
|
|||||||
|
|
||||||
it('checking addExtensionOnDarwin', async () => {
|
it('checking addExtensionOnDarwin', async () => {
|
||||||
let darwin: string = await extensions.addExtension(
|
let darwin: string = await extensions.addExtension(
|
||||||
'Xdebug, pcov, grpc, igbinary, imagick, phalcon3, phalcon4, protobuf, psr, rdkafka, swoole, vips, sqlite, ast-beta',
|
'Xdebug, pcov, expect, grpc, igbinary, imagick, phalcon3, phalcon4, protobuf, psr, rdkafka, ssh2, swoole, vips, sqlite, ast-beta',
|
||||||
'7.2',
|
'7.2',
|
||||||
'darwin'
|
'darwin'
|
||||||
);
|
);
|
||||||
expect(darwin).toContain('add_brew_extension xdebug');
|
expect(darwin).toContain('add_brew_extension xdebug');
|
||||||
expect(darwin).toContain('add_brew_extension pcov');
|
expect(darwin).toContain('add_brew_extension pcov');
|
||||||
|
expect(darwin).toContain('add_brew_extension expect');
|
||||||
expect(darwin).toContain('add_brew_extension grpc');
|
expect(darwin).toContain('add_brew_extension grpc');
|
||||||
expect(darwin).toContain('add_brew_extension igbinary');
|
expect(darwin).toContain('add_brew_extension igbinary');
|
||||||
expect(darwin).toContain('add_brew_extension imagick');
|
expect(darwin).toContain('add_brew_extension imagick');
|
||||||
@@ -87,6 +88,7 @@ describe('Extension tests', () => {
|
|||||||
expect(darwin).toContain('add_brew_extension protobuf');
|
expect(darwin).toContain('add_brew_extension protobuf');
|
||||||
expect(darwin).toContain('add_brew_extension psr');
|
expect(darwin).toContain('add_brew_extension psr');
|
||||||
expect(darwin).toContain('add_brew_extension rdkafka');
|
expect(darwin).toContain('add_brew_extension rdkafka');
|
||||||
|
expect(darwin).toContain('add_brew_extension ssh2');
|
||||||
expect(darwin).toContain('add_brew_extension swoole');
|
expect(darwin).toContain('add_brew_extension swoole');
|
||||||
expect(darwin).toContain('add_brew_extension vips');
|
expect(darwin).toContain('add_brew_extension vips');
|
||||||
expect(darwin).toContain('pecl_install sqlite3');
|
expect(darwin).toContain('pecl_install sqlite3');
|
||||||
|
|||||||
Vendored
+1
-1
@@ -230,7 +230,7 @@ async function addExtensionDarwin(extension_csv, version) {
|
|||||||
' ' +
|
' ' +
|
||||||
ext_prefix;
|
ext_prefix;
|
||||||
return;
|
return;
|
||||||
case /(5\.6|7\.[0-4]|8.0)(amqp|grpc|igbinary|imagick|imap|mongodb|msgpack|^(pecl_)?http$|propro|protobuf|psr|raphf|rdkafka|redis|swoole|xdebug|xdebug2|yaml|zmq)/.test(version_extension):
|
case /(5\.6|7\.[0-4]|8.0)(amqp|expect|grpc|igbinary|imagick|imap|mongodb|msgpack|^(pecl_)?http$|propro|protobuf|psr|raphf|rdkafka|redis|ssh2|swoole|xdebug|xdebug2|yaml|zmq)/.test(version_extension):
|
||||||
case /(7\.[1-4]|8\.0])pcov/.test(version_extension):
|
case /(7\.[1-4]|8\.0])pcov/.test(version_extension):
|
||||||
case /^(5\.6|7\.[0-3])phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
case /^(5\.6|7\.[0-3])phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
|
||||||
case /(7\.[0-4]|8\.0])vips/.test(version_extension):
|
case /(7\.[0-4]|8\.0])vips/.test(version_extension):
|
||||||
|
|||||||
Generated
+1071
-1420
File diff suppressed because it is too large
Load Diff
+13
-16
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-php",
|
"name": "setup-php",
|
||||||
"version": "1.11.4",
|
"version": "1.11.5",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "Setup PHP for use with GitHub Actions",
|
"description": "Setup PHP for use with GitHub Actions",
|
||||||
"main": "lib/install.js",
|
"main": "lib/install.js",
|
||||||
@@ -40,30 +40,27 @@
|
|||||||
"fs": "0.0.1-security"
|
"fs": "0.0.1-security"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^27.0.1",
|
"@types/jest": "^27.0.2",
|
||||||
"@types/node": "^16.9.1",
|
"@types/node": "^16.10.1",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.31.0",
|
"@typescript-eslint/eslint-plugin": "^4.32.0",
|
||||||
"@typescript-eslint/parser": "^4.31.0",
|
"@typescript-eslint/parser": "^4.32.0",
|
||||||
"@vercel/ncc": "^0.31.0",
|
"@vercel/ncc": "^0.31.1",
|
||||||
"eslint": "^7.32.0",
|
"eslint": "^7.32.0",
|
||||||
"eslint-config-prettier": "^8.3.0",
|
"eslint-config-prettier": "^8.3.0",
|
||||||
"eslint-plugin-import": "^2.24.2",
|
"eslint-plugin-import": "^2.24.2",
|
||||||
"eslint-plugin-jest": "^24.4.0",
|
"eslint-plugin-jest": "^24.4.2",
|
||||||
"eslint-plugin-prettier": "^4.0.0",
|
"eslint-plugin-prettier": "^4.0.0",
|
||||||
"husky": "^4.3.8",
|
"jest": "^27.2.2",
|
||||||
"jest": "^27.1.1",
|
"jest-circus": "^27.2.2",
|
||||||
"jest-circus": "^27.1.1",
|
"prettier": "^2.4.1",
|
||||||
"prettier": "^2.4.0",
|
"simple-git-hooks": "^2.6.1",
|
||||||
"ts-jest": "^27.0.5",
|
"ts-jest": "^27.0.5",
|
||||||
"typescript": "^4.4.3"
|
"typescript": "^4.4.3"
|
||||||
},
|
},
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/shivammathur/setup-php/issues"
|
"url": "https://github.com/shivammathur/setup-php/issues"
|
||||||
},
|
},
|
||||||
"husky": {
|
"simple-git-hooks": {
|
||||||
"skipCI": true,
|
"pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release"
|
||||||
"hooks": {
|
|
||||||
"pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
amqp=amqp
|
||||||
|
apcu=apcu
|
||||||
|
expect=expect
|
||||||
|
grpc=grpc
|
||||||
|
igbinary=igbinary
|
||||||
|
imagick=imagick
|
||||||
|
imap=imap
|
||||||
|
memcache=memcache
|
||||||
|
memcached=memcached
|
||||||
|
mongodb=mongodb
|
||||||
|
msgpack=msgpack
|
||||||
|
pcov=pcov
|
||||||
|
pecl_http=http
|
||||||
|
phalcon3=phalcon
|
||||||
|
phalcon4=phalcon
|
||||||
|
propro=propro
|
||||||
|
protobuf=protobuf
|
||||||
|
psr=psr
|
||||||
|
raphf=raphf
|
||||||
|
rdkafka=rdkafka
|
||||||
|
redis=redis
|
||||||
|
ssh2=ssh2
|
||||||
|
swoole=swoole
|
||||||
|
vips=vips
|
||||||
|
xdebug=xdebug
|
||||||
|
xdebug2=xdebug
|
||||||
|
yaml=yaml
|
||||||
|
zmq=zmq
|
||||||
+2
-2
@@ -30,10 +30,10 @@ export async function addExtensionDarwin(
|
|||||||
' ' +
|
' ' +
|
||||||
ext_prefix;
|
ext_prefix;
|
||||||
return;
|
return;
|
||||||
// match 5.6 to 8.0 amqp, grpc, igbinary, imagick, imap, mongodb, msgpack, pecl_http, propro, protobuf, raphf, rdkafka, redis, swoole, xdebug, xdebug2, yaml, zmq
|
// match 5.6 to 8.0 amqp, expect, grpc, igbinary, imagick, imap, mongodb, msgpack, pecl_http, propro, protobuf, raphf, rdkafka, redis, ssh2, swoole, xdebug, xdebug2, yaml, zmq
|
||||||
// match 7.1pcov to 8.0pcov
|
// match 7.1pcov to 8.0pcov
|
||||||
// match 7.0vips to 8.0vips
|
// match 7.0vips to 8.0vips
|
||||||
case /(5\.6|7\.[0-4]|8.0)(amqp|grpc|igbinary|imagick|imap|mongodb|msgpack|^(pecl_)?http$|propro|protobuf|psr|raphf|rdkafka|redis|swoole|xdebug|xdebug2|yaml|zmq)/.test(
|
case /(5\.6|7\.[0-4]|8.0)(amqp|expect|grpc|igbinary|imagick|imap|mongodb|msgpack|^(pecl_)?http$|propro|protobuf|psr|raphf|rdkafka|redis|ssh2|swoole|xdebug|xdebug2|yaml|zmq)/.test(
|
||||||
version_extension
|
version_extension
|
||||||
):
|
):
|
||||||
case /(7\.[1-4]|8\.0])pcov/.test(version_extension):
|
case /(7\.[1-4]|8\.0])pcov/.test(version_extension):
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ add_log() {
|
|||||||
|
|
||||||
# Function to remove extensions
|
# Function to remove extensions
|
||||||
remove_extension() {
|
remove_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
sudo sed -Ei '' "/=(.*\/)?\"?$extension/d" "$ini_file"
|
sudo sed -Ei '' "/=(.*\/)?\"?$extension/d" "$ini_file"
|
||||||
sudo rm -rf "$scan_dir"/*"$extension"* >/dev/null 2>&1
|
sudo rm -rf "$scan_dir"/*"$extension"* >/dev/null 2>&1
|
||||||
sudo rm -rf "$ext_dir"/"$extension".so >/dev/null 2>&1
|
sudo rm -rf "$ext_dir"/"$extension".so >/dev/null 2>&1
|
||||||
@@ -26,7 +26,7 @@ remove_extension() {
|
|||||||
|
|
||||||
# Function to test if extension is loaded
|
# Function to test if extension is loaded
|
||||||
check_extension() {
|
check_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
if [ "$extension" != "mysql" ]; then
|
if [ "$extension" != "mysql" ]; then
|
||||||
php -m | grep -i -q -w "$extension"
|
php -m | grep -i -q -w "$extension"
|
||||||
else
|
else
|
||||||
@@ -42,7 +42,7 @@ pecl_install() {
|
|||||||
|
|
||||||
# Function to get the PECL version
|
# Function to get the PECL version
|
||||||
get_pecl_version() {
|
get_pecl_version() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot|preview)")"
|
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot|preview)")"
|
||||||
pecl_rest='https://pecl.php.net/rest/r/'
|
pecl_rest='https://pecl.php.net/rest/r/'
|
||||||
response=$(curl "${curl_opts[@]}" "$pecl_rest$extension"/allreleases.xml)
|
response=$(curl "${curl_opts[@]}" "$pecl_rest$extension"/allreleases.xml)
|
||||||
@@ -55,7 +55,7 @@ get_pecl_version() {
|
|||||||
|
|
||||||
# Function to install a PECL version
|
# Function to install a PECL version
|
||||||
add_pecl_extension() {
|
add_pecl_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
pecl_version=$2
|
pecl_version=$2
|
||||||
prefix=$3
|
prefix=$3
|
||||||
if [[ $pecl_version =~ .*(alpha|beta|rc|snapshot|preview).* ]]; then
|
if [[ $pecl_version =~ .*(alpha|beta|rc|snapshot|preview).* ]]; then
|
||||||
@@ -103,7 +103,8 @@ add_brew_tap() {
|
|||||||
# Function to install a php extension from shivammathur/extensions tap.
|
# Function to install a php extension from shivammathur/extensions tap.
|
||||||
add_brew_extension() {
|
add_brew_extension() {
|
||||||
formula=$1
|
formula=$1
|
||||||
extension=${formula//[0-9]/}
|
extension=$(grep "$formula=" "$dist"/../src/configs/brew_extensions | cut -d '=' -f 2)
|
||||||
|
[[ -z "$extension" ]] && extension="$(echo "$formula" | sed -E "s/pecl_|[0-9]//g")"
|
||||||
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
|
||||||
@@ -113,7 +114,7 @@ add_brew_extension() {
|
|||||||
|
|
||||||
# Function to setup extensions
|
# Function to setup extensions
|
||||||
add_extension() {
|
add_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
install_command=$2
|
install_command=$2
|
||||||
prefix=$3
|
prefix=$3
|
||||||
if ! check_extension "$extension" && [ -e "$ext_dir/$extension.so" ]; then
|
if ! check_extension "$extension" && [ -e "$ext_dir/$extension.so" ]; then
|
||||||
@@ -131,7 +132,7 @@ add_extension() {
|
|||||||
|
|
||||||
# Function to pre-release extensions using PECL
|
# Function to pre-release extensions using PECL
|
||||||
add_unstable_extension() {
|
add_unstable_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
stability=$2
|
stability=$2
|
||||||
prefix=$3
|
prefix=$3
|
||||||
pecl_version=$(get_pecl_version "$extension" "$stability")
|
pecl_version=$(get_pecl_version "$extension" "$stability")
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ update_ppa() {
|
|||||||
|
|
||||||
# Function to install phalcon
|
# Function to install phalcon
|
||||||
install_phalcon() {
|
install_phalcon() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
version=$2
|
version=$2
|
||||||
(update_ppa && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y "php$version-psr" "php$version-$extension" >/dev/null 2>&1 && add_log "$tick" "$extension" "Installed and enabled") ||
|
(update_ppa && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y "php$version-psr" "php$version-$extension" >/dev/null 2>&1 && add_log "$tick" "$extension" "Installed and enabled") ||
|
||||||
add_log "$cross" "$extension" "Could not install $extension on PHP $semver"
|
add_log "$cross" "$extension" "Could not install $extension on PHP $semver"
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ configure_pecl() {
|
|||||||
|
|
||||||
# Function to get the PECL version
|
# Function to get the PECL version
|
||||||
get_pecl_version() {
|
get_pecl_version() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot|preview)")"
|
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot|preview)")"
|
||||||
pecl_rest='https://pecl.php.net/rest/r/'
|
pecl_rest='https://pecl.php.net/rest/r/'
|
||||||
response=$(curl "${curl_opts[@]}" "$pecl_rest$extension"/allreleases.xml)
|
response=$(curl "${curl_opts[@]}" "$pecl_rest$extension"/allreleases.xml)
|
||||||
@@ -89,7 +89,7 @@ enable_extension() {
|
|||||||
|
|
||||||
# Function to test if extension is loaded
|
# Function to test if extension is loaded
|
||||||
check_extension() {
|
check_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
if [ "$extension" != "mysql" ]; then
|
if [ "$extension" != "mysql" ]; then
|
||||||
php -m | grep -i -q -w "$extension"
|
php -m | grep -i -q -w "$extension"
|
||||||
else
|
else
|
||||||
@@ -99,7 +99,7 @@ check_extension() {
|
|||||||
|
|
||||||
# Function to delete extensions
|
# Function to delete extensions
|
||||||
delete_extension() {
|
delete_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
sudo sed -Ei "/=(.*\/)?\"?$extension/d" "$ini_file"
|
sudo sed -Ei "/=(.*\/)?\"?$extension/d" "$ini_file"
|
||||||
sudo sed -Ei "/=(.*\/)?\"?$extension/d" "$pecl_file"
|
sudo sed -Ei "/=(.*\/)?\"?$extension/d" "$pecl_file"
|
||||||
sudo rm -rf "$scan_dir"/*"$extension"* >/dev/null 2>&1
|
sudo rm -rf "$scan_dir"/*"$extension"* >/dev/null 2>&1
|
||||||
@@ -109,7 +109,7 @@ delete_extension() {
|
|||||||
|
|
||||||
# Function to disable and delete extensions
|
# Function to disable and delete extensions
|
||||||
remove_extension() {
|
remove_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
if [ -e /etc/php/"$version"/mods-available/"$extension".ini ]; then
|
if [ -e /etc/php/"$version"/mods-available/"$extension".ini ]; then
|
||||||
sudo phpdismod -v "$version" "$extension"
|
sudo phpdismod -v "$version" "$extension"
|
||||||
fi
|
fi
|
||||||
@@ -118,7 +118,7 @@ remove_extension() {
|
|||||||
|
|
||||||
# Function to setup extensions
|
# Function to setup extensions
|
||||||
add_extension() {
|
add_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
install_command=$2
|
install_command=$2
|
||||||
prefix=$3
|
prefix=$3
|
||||||
enable_extension "$extension" "$prefix"
|
enable_extension "$extension" "$prefix"
|
||||||
@@ -135,7 +135,7 @@ add_extension() {
|
|||||||
|
|
||||||
# Function to install a PECL version
|
# Function to install a PECL version
|
||||||
add_pecl_extension() {
|
add_pecl_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
pecl_version=$2
|
pecl_version=$2
|
||||||
prefix=$3
|
prefix=$3
|
||||||
configure_pecl
|
configure_pecl
|
||||||
@@ -158,7 +158,7 @@ add_pecl_extension() {
|
|||||||
|
|
||||||
# Function to pre-release extensions using PECL
|
# Function to pre-release extensions using PECL
|
||||||
add_unstable_extension() {
|
add_unstable_extension() {
|
||||||
extension=$1
|
local extension=$1
|
||||||
stability=$2
|
stability=$2
|
||||||
prefix=$3
|
prefix=$3
|
||||||
pecl_version=$(get_pecl_version "$extension" "$stability")
|
pecl_version=$(get_pecl_version "$extension" "$stability")
|
||||||
|
|||||||
Reference in New Issue
Block a user