mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-08-18 19:44:42 +07:00
Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
3160874a27 | |||
db0bbd209b | |||
d920044a54 | |||
818ca89f55 | |||
8876ac788f | |||
0390a48770 | |||
274e348895 | |||
37d7b37f43 | |||
d058d52012 |
2
.github/SECURITY.md
vendored
2
.github/SECURITY.md
vendored
@ -7,7 +7,7 @@ The following versions of this project are supported for security updates.
|
|||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
| 1.9.x | :white_check_mark: |
|
| 1.9.x | :white_check_mark: |
|
||||||
| 2.3.x | :white_check_mark: |
|
| 2.4.x | :white_check_mark: |
|
||||||
|
|
||||||
## Supported PHP Versions
|
## Supported PHP Versions
|
||||||
|
|
||||||
|
@ -1,14 +1,6 @@
|
|||||||
import * as extensions from '../src/extensions';
|
import * as extensions from '../src/extensions';
|
||||||
|
|
||||||
describe('Extension tests', () => {
|
describe('Extension tests', () => {
|
||||||
it('checking getXdebugVersion', async () => {
|
|
||||||
expect(await extensions.getXdebugVersion('5.3')).toContain('2.2.7');
|
|
||||||
expect(await extensions.getXdebugVersion('5.4')).toContain('2.4.1');
|
|
||||||
expect(await extensions.getXdebugVersion('5.5')).toContain('2.5.5');
|
|
||||||
expect(await extensions.getXdebugVersion('5.6')).toContain('2.5.5');
|
|
||||||
expect(await extensions.getXdebugVersion('7.0')).toContain('2.7.2');
|
|
||||||
expect(await extensions.getXdebugVersion('7.2')).toContain('2.9.6');
|
|
||||||
});
|
|
||||||
it('checking addExtensionOnWindows', async () => {
|
it('checking addExtensionOnWindows', async () => {
|
||||||
let win32: string = await extensions.addExtension(
|
let win32: string = await extensions.addExtension(
|
||||||
'Xdebug, pcov, sqlite, phalcon4, ast-beta',
|
'Xdebug, pcov, sqlite, phalcon4, ast-beta',
|
||||||
@ -53,7 +45,6 @@ describe('Extension tests', () => {
|
|||||||
'7.4',
|
'7.4',
|
||||||
'linux'
|
'linux'
|
||||||
);
|
);
|
||||||
expect(linux).toContain('update_extension xdebug 2.9.2');
|
|
||||||
expect(linux).toContain('sudo $debconf_fix apt-get install -y php7.4-pcov');
|
expect(linux).toContain('sudo $debconf_fix apt-get install -y php7.4-pcov');
|
||||||
expect(linux).toContain(
|
expect(linux).toContain(
|
||||||
'sudo $debconf_fix apt-get install -y php7.4-sqlite3'
|
'sudo $debconf_fix apt-get install -y php7.4-sqlite3'
|
||||||
@ -96,7 +87,7 @@ describe('Extension tests', () => {
|
|||||||
expect(darwin).toContain('add_brew_extension grpc');
|
expect(darwin).toContain('add_brew_extension grpc');
|
||||||
expect(darwin).toContain('add_brew_extension protobuf');
|
expect(darwin).toContain('add_brew_extension protobuf');
|
||||||
expect(darwin).toContain('add_brew_extension swoole');
|
expect(darwin).toContain('add_brew_extension swoole');
|
||||||
expect(darwin).toContain('sudo pecl install -f sqlite3');
|
expect(darwin).toContain('pecl_install sqlite3');
|
||||||
expect(darwin).toContain('add_unstable_extension ast beta extension');
|
expect(darwin).toContain('add_unstable_extension ast beta extension');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('phalcon3', '7.0', 'darwin');
|
darwin = await extensions.addExtension('phalcon3', '7.0', 'darwin');
|
||||||
@ -106,7 +97,7 @@ describe('Extension tests', () => {
|
|||||||
expect(darwin).toContain('phalcon_darwin.sh phalcon4 7.3');
|
expect(darwin).toContain('phalcon_darwin.sh phalcon4 7.3');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('pcov', '5.6', 'darwin');
|
darwin = await extensions.addExtension('pcov', '5.6', 'darwin');
|
||||||
expect(darwin).toContain('sudo pecl install -f pcov');
|
expect(darwin).toContain('pecl_install pcov');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('pcov', '7.2', 'darwin');
|
darwin = await extensions.addExtension('pcov', '7.2', 'darwin');
|
||||||
expect(darwin).toContain('add_brew_extension pcov');
|
expect(darwin).toContain('add_brew_extension pcov');
|
||||||
@ -121,18 +112,18 @@ describe('Extension tests', () => {
|
|||||||
expect(darwin).toContain('add_brew_extension xdebug');
|
expect(darwin).toContain('add_brew_extension xdebug');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('redis', '5.6', 'darwin');
|
darwin = await extensions.addExtension('redis', '5.6', 'darwin');
|
||||||
expect(darwin).toContain('sudo pecl install -f redis-2.2.8');
|
expect(darwin).toContain('pecl_install redis-2.2.8');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('redis', '7.2', 'darwin');
|
darwin = await extensions.addExtension('redis', '7.2', 'darwin');
|
||||||
expect(darwin).toContain('sudo pecl install -f redis');
|
expect(darwin).toContain('pecl_install redis');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('imagick', '5.6', 'darwin');
|
darwin = await extensions.addExtension('imagick', '5.6', 'darwin');
|
||||||
expect(darwin).toContain('brew install pkg-config imagemagick');
|
expect(darwin).toContain('brew install pkg-config imagemagick');
|
||||||
expect(darwin).toContain('sudo pecl install -f imagick');
|
expect(darwin).toContain('pecl_install imagick');
|
||||||
|
|
||||||
darwin = await extensions.addExtension('imagick', '7.4', 'darwin');
|
darwin = await extensions.addExtension('imagick', '7.4', 'darwin');
|
||||||
expect(darwin).toContain('brew install pkg-config imagemagick');
|
expect(darwin).toContain('brew install pkg-config imagemagick');
|
||||||
expect(darwin).toContain('sudo pecl install -f imagick');
|
expect(darwin).toContain('pecl_install imagick');
|
||||||
|
|
||||||
darwin = await extensions.addExtension(
|
darwin = await extensions.addExtension(
|
||||||
'does_not_exist',
|
'does_not_exist',
|
||||||
|
37
dist/index.js
vendored
37
dist/index.js
vendored
@ -3505,30 +3505,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
exports.addExtension = exports.addExtensionLinux = exports.addExtensionWindows = exports.addExtensionDarwin = exports.getXdebugVersion = void 0;
|
exports.addExtension = exports.addExtensionLinux = exports.addExtensionWindows = exports.addExtensionDarwin = void 0;
|
||||||
const path = __importStar(__webpack_require__(622));
|
const path = __importStar(__webpack_require__(622));
|
||||||
const utils = __importStar(__webpack_require__(163));
|
const utils = __importStar(__webpack_require__(163));
|
||||||
/**
|
|
||||||
* Function to get Xdebug version compatible with php versions
|
|
||||||
*
|
|
||||||
* @param version
|
|
||||||
*/
|
|
||||||
async function getXdebugVersion(version) {
|
|
||||||
switch (version) {
|
|
||||||
case '5.3':
|
|
||||||
return '2.2.7';
|
|
||||||
case '5.4':
|
|
||||||
return '2.4.1';
|
|
||||||
case '5.5':
|
|
||||||
case '5.6':
|
|
||||||
return '2.5.5';
|
|
||||||
case '7.0':
|
|
||||||
return '2.7.2';
|
|
||||||
default:
|
|
||||||
return '2.9.6';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exports.getXdebugVersion = getXdebugVersion;
|
|
||||||
/**
|
/**
|
||||||
* Install and enable extensions for darwin
|
* Install and enable extensions for darwin
|
||||||
*
|
*
|
||||||
@ -3543,7 +3522,7 @@ async function addExtensionDarwin(extension_csv, version, pipe) {
|
|||||||
const version_extension = version + extension;
|
const version_extension = version + extension;
|
||||||
const [extension_name, stability] = extension.split('-');
|
const [extension_name, stability] = extension.split('-');
|
||||||
const ext_prefix = await utils.getExtensionPrefix(extension_name);
|
const ext_prefix = await utils.getExtensionPrefix(extension_name);
|
||||||
const command_prefix = 'sudo pecl install -f ';
|
const command_prefix = 'pecl_install ';
|
||||||
let command = '';
|
let command = '';
|
||||||
switch (true) {
|
switch (true) {
|
||||||
// match pre-release versions
|
// match pre-release versions
|
||||||
@ -3559,8 +3538,8 @@ async function addExtensionDarwin(extension_csv, version, pipe) {
|
|||||||
// match 5.6xdebug to 8.0xdebug, 5.6swoole to 8.0swoole
|
// match 5.6xdebug to 8.0xdebug, 5.6swoole to 8.0swoole
|
||||||
// match 5.6grpc to 7.4grpc, 5.6protobuf to 7.4protobuf
|
// match 5.6grpc to 7.4grpc, 5.6protobuf to 7.4protobuf
|
||||||
// match 7.1pcov to 8.0pcov
|
// match 7.1pcov to 8.0pcov
|
||||||
case /(5\.6|7\.[0-4]|8\.[0-9])(xdebug|swoole)/.test(version_extension):
|
case /(5\.6|7\.[0-4]|8\.[0-9])xdebug/.test(version_extension):
|
||||||
case /(5\.6|7\.[0-4])(grpc|protobuf)/.test(version_extension):
|
case /(5\.6|7\.[0-4])(grpc|protobuf|swoole)/.test(version_extension):
|
||||||
case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension):
|
case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension):
|
||||||
command = 'add_brew_extension ' + extension_name;
|
command = 'add_brew_extension ' + extension_name;
|
||||||
break;
|
break;
|
||||||
@ -3706,14 +3685,6 @@ async function addExtensionLinux(extension_csv, version, pipe) {
|
|||||||
' ' +
|
' ' +
|
||||||
version;
|
version;
|
||||||
return;
|
return;
|
||||||
// match 7.0xdebug..7.4xdebug
|
|
||||||
case /^7\.[0-4]xdebug$/.test(version_extension):
|
|
||||||
script +=
|
|
||||||
'\nupdate_extension xdebug 2.9.2' +
|
|
||||||
pipe +
|
|
||||||
'\n' +
|
|
||||||
(await utils.addLog('$tick', 'xdebug', 'Enabled', 'linux'));
|
|
||||||
return;
|
|
||||||
// match sqlite
|
// match sqlite
|
||||||
case /^sqlite$/.test(extension):
|
case /^sqlite$/.test(extension):
|
||||||
extension = 'sqlite3';
|
extension = 'sqlite3';
|
||||||
|
1123
package-lock.json
generated
1123
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-php",
|
"name": "setup-php",
|
||||||
"version": "1.9.3",
|
"version": "1.9.4",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "Setup PHP for use with GitHub Actions",
|
"description": "Setup PHP for use with GitHub Actions",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
@ -31,21 +31,21 @@
|
|||||||
"fs": "0.0.1-security"
|
"fs": "0.0.1-security"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "^26.0.5",
|
"@types/jest": "^26.0.9",
|
||||||
"@types/node": "^14.0.23",
|
"@types/node": "^14.0.27",
|
||||||
"@typescript-eslint/eslint-plugin": "^3.6.1",
|
"@typescript-eslint/eslint-plugin": "^3.8.0",
|
||||||
"@typescript-eslint/parser": "^3.6.1",
|
"@typescript-eslint/parser": "^3.8.0",
|
||||||
"@zeit/ncc": "^0.22.3",
|
"@zeit/ncc": "^0.22.3",
|
||||||
"eslint": "^7.5.0",
|
"eslint": "^7.6.0",
|
||||||
"eslint-config-prettier": "^6.11.0",
|
"eslint-config-prettier": "^6.11.0",
|
||||||
"eslint-plugin-import": "^2.22.0",
|
"eslint-plugin-import": "^2.22.0",
|
||||||
"eslint-plugin-jest": "^23.18.0",
|
"eslint-plugin-jest": "^23.20.0",
|
||||||
"eslint-plugin-prettier": "^3.1.4",
|
"eslint-plugin-prettier": "^3.1.4",
|
||||||
"husky": "^4.2.5",
|
"husky": "^4.2.5",
|
||||||
"jest": "^26.1.0",
|
"jest": "^26.2.2",
|
||||||
"jest-circus": "^26.1.0",
|
"jest-circus": "^26.2.2",
|
||||||
"prettier": "^2.0.5",
|
"prettier": "^2.0.5",
|
||||||
"ts-jest": "^26.1.3",
|
"ts-jest": "^26.1.4",
|
||||||
"typescript": "^3.9.7"
|
"typescript": "^3.9.7"
|
||||||
},
|
},
|
||||||
"husky": {
|
"husky": {
|
||||||
|
@ -1,27 +1,6 @@
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import * as utils from './utils';
|
import * as utils from './utils';
|
||||||
|
|
||||||
/**
|
|
||||||
* Function to get Xdebug version compatible with php versions
|
|
||||||
*
|
|
||||||
* @param version
|
|
||||||
*/
|
|
||||||
export async function getXdebugVersion(version: string): Promise<string> {
|
|
||||||
switch (version) {
|
|
||||||
case '5.3':
|
|
||||||
return '2.2.7';
|
|
||||||
case '5.4':
|
|
||||||
return '2.4.1';
|
|
||||||
case '5.5':
|
|
||||||
case '5.6':
|
|
||||||
return '2.5.5';
|
|
||||||
case '7.0':
|
|
||||||
return '2.7.2';
|
|
||||||
default:
|
|
||||||
return '2.9.6';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Install and enable extensions for darwin
|
* Install and enable extensions for darwin
|
||||||
*
|
*
|
||||||
@ -40,7 +19,7 @@ export async function addExtensionDarwin(
|
|||||||
const version_extension: string = version + extension;
|
const version_extension: string = version + extension;
|
||||||
const [extension_name, stability]: string[] = extension.split('-');
|
const [extension_name, stability]: string[] = extension.split('-');
|
||||||
const ext_prefix = await utils.getExtensionPrefix(extension_name);
|
const ext_prefix = await utils.getExtensionPrefix(extension_name);
|
||||||
const command_prefix = 'sudo pecl install -f ';
|
const command_prefix = 'pecl_install ';
|
||||||
let command = '';
|
let command = '';
|
||||||
switch (true) {
|
switch (true) {
|
||||||
// match pre-release versions
|
// match pre-release versions
|
||||||
@ -56,8 +35,8 @@ export async function addExtensionDarwin(
|
|||||||
// match 5.6xdebug to 8.0xdebug, 5.6swoole to 8.0swoole
|
// match 5.6xdebug to 8.0xdebug, 5.6swoole to 8.0swoole
|
||||||
// match 5.6grpc to 7.4grpc, 5.6protobuf to 7.4protobuf
|
// match 5.6grpc to 7.4grpc, 5.6protobuf to 7.4protobuf
|
||||||
// match 7.1pcov to 8.0pcov
|
// match 7.1pcov to 8.0pcov
|
||||||
case /(5\.6|7\.[0-4]|8\.[0-9])(xdebug|swoole)/.test(version_extension):
|
case /(5\.6|7\.[0-4]|8\.[0-9])xdebug/.test(version_extension):
|
||||||
case /(5\.6|7\.[0-4])(grpc|protobuf)/.test(version_extension):
|
case /(5\.6|7\.[0-4])(grpc|protobuf|swoole)/.test(version_extension):
|
||||||
case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension):
|
case /(7\.[1-4]|8\.[0-9])pcov/.test(version_extension):
|
||||||
command = 'add_brew_extension ' + extension_name;
|
command = 'add_brew_extension ' + extension_name;
|
||||||
break;
|
break;
|
||||||
@ -210,14 +189,6 @@ export async function addExtensionLinux(
|
|||||||
' ' +
|
' ' +
|
||||||
version;
|
version;
|
||||||
return;
|
return;
|
||||||
// match 7.0xdebug..7.4xdebug
|
|
||||||
case /^7\.[0-4]xdebug$/.test(version_extension):
|
|
||||||
script +=
|
|
||||||
'\nupdate_extension xdebug 2.9.2' +
|
|
||||||
pipe +
|
|
||||||
'\n' +
|
|
||||||
(await utils.addLog('$tick', 'xdebug', 'Enabled', 'linux'));
|
|
||||||
return;
|
|
||||||
// match sqlite
|
// match sqlite
|
||||||
case /^sqlite$/.test(extension):
|
case /^sqlite$/.test(extension):
|
||||||
extension = 'sqlite3';
|
extension = 'sqlite3';
|
||||||
|
@ -34,12 +34,18 @@ check_extension() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to install PECL extensions and accept default options
|
||||||
|
pecl_install() {
|
||||||
|
local extension=$1
|
||||||
|
yes '' | sudo pecl install -f "$extension" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
# Fuction to get the PECL version
|
# Fuction to get the PECL version
|
||||||
get_pecl_version() {
|
get_pecl_version() {
|
||||||
extension=$1
|
extension=$1
|
||||||
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot)")"
|
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot)")"
|
||||||
pecl_rest='https://pecl.php.net/rest/r/'
|
pecl_rest='https://pecl.php.net/rest/r/'
|
||||||
response=$(curl -q -sSL "$pecl_rest$extension"/allreleases.xml)
|
response=$(curl -sL "$pecl_rest$extension"/allreleases.xml)
|
||||||
pecl_version=$(echo "$response" | grep -m 1 -Eio "(\d*\.\d*\.\d*$stability\d*)")
|
pecl_version=$(echo "$response" | grep -m 1 -Eio "(\d*\.\d*\.\d*$stability\d*)")
|
||||||
if [ ! "$pecl_version" ]; then
|
if [ ! "$pecl_version" ]; then
|
||||||
pecl_version=$(echo "$response" | grep -m 1 -Eo "(\d*\.\d*\.\d*)")
|
pecl_version=$(echo "$response" | grep -m 1 -Eo "(\d*\.\d*\.\d*)")
|
||||||
@ -64,7 +70,7 @@ add_pecl_extension() {
|
|||||||
else
|
else
|
||||||
remove_extension "$extension"
|
remove_extension "$extension"
|
||||||
(
|
(
|
||||||
sudo pecl install -f "$extension-$pecl_version" >/dev/null 2>&1 &&
|
pecl_install "$extension-$pecl_version" >/dev/null 2>&1 &&
|
||||||
check_extension "$extension" &&
|
check_extension "$extension" &&
|
||||||
add_log "$tick" "$extension" "Installed and enabled"
|
add_log "$tick" "$extension" "Installed and enabled"
|
||||||
) || add_log "$cross" "$extension" "Could not install $extension-$pecl_version on PHP $semver"
|
) || add_log "$cross" "$extension" "Could not install $extension-$pecl_version on PHP $semver"
|
||||||
@ -139,12 +145,12 @@ add_tool() {
|
|||||||
if [ "$tool" = "composer" ]; then
|
if [ "$tool" = "composer" ]; then
|
||||||
configure_composer "$tool_path"
|
configure_composer "$tool_path"
|
||||||
elif [ "$tool" = "phan" ]; then
|
elif [ "$tool" = "phan" ]; then
|
||||||
add_extension fileinfo "sudo pecl install -f fileinfo" extension >/dev/null 2>&1
|
add_extension fileinfo "pecl_install fileinfo" extension >/dev/null 2>&1
|
||||||
add_extension ast "sudo pecl install -f ast" extension >/dev/null 2>&1
|
add_extension ast "pecl_install ast" extension >/dev/null 2>&1
|
||||||
elif [ "$tool" = "phive" ]; then
|
elif [ "$tool" = "phive" ]; then
|
||||||
add_extension curl "sudo pecl install -f curl" extension >/dev/null 2>&1
|
add_extension curl "pecl_install curl" extension >/dev/null 2>&1
|
||||||
add_extension mbstring "sudo pecl install -f mbstring" extension >/dev/null 2>&1
|
add_extension mbstring "pecl_install mbstring" extension >/dev/null 2>&1
|
||||||
add_extension xml "sudo pecl install -f xml" extension >/dev/null 2>&1
|
add_extension xml "pecl_install xml" extension >/dev/null 2>&1
|
||||||
elif [ "$tool" = "cs2pr" ]; then
|
elif [ "$tool" = "cs2pr" ]; then
|
||||||
sudo sed -i '' 's/exit(9)/exit(0)/' "$tool_path"
|
sudo sed -i '' 's/exit(9)/exit(0)/' "$tool_path"
|
||||||
tr -d '\r' < "$tool_path" | sudo tee "$tool_path.tmp" >/dev/null 2>&1 && sudo mv "$tool_path.tmp" "$tool_path"
|
tr -d '\r' < "$tool_path" | sudo tee "$tool_path.tmp" >/dev/null 2>&1 && sudo mv "$tool_path.tmp" "$tool_path"
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
cd ~ && git clone --depth=1 https://github.com/krakjoe/pcov.git
|
|
||||||
cd pcov && phpize
|
|
||||||
./configure --enable-pcov
|
|
||||||
make
|
|
||||||
sudo make install
|
|
@ -51,7 +51,7 @@ get_pecl_version() {
|
|||||||
extension=$1
|
extension=$1
|
||||||
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot)")"
|
stability="$(echo "$2" | grep -m 1 -Eio "(alpha|beta|rc|snapshot)")"
|
||||||
pecl_rest='https://pecl.php.net/rest/r/'
|
pecl_rest='https://pecl.php.net/rest/r/'
|
||||||
response=$(curl -q -sSL "$pecl_rest$extension"/allreleases.xml)
|
response=$(curl -sL "$pecl_rest$extension"/allreleases.xml)
|
||||||
pecl_version=$(echo "$response" | grep -m 1 -Pio "(\d*\.\d*\.\d*$stability\d*)")
|
pecl_version=$(echo "$response" | grep -m 1 -Pio "(\d*\.\d*\.\d*$stability\d*)")
|
||||||
if [ ! "$pecl_version" ]; then
|
if [ ! "$pecl_version" ]; then
|
||||||
pecl_version=$(echo "$response" | grep -m 1 -Po "(\d*\.\d*\.\d*)")
|
pecl_version=$(echo "$response" | grep -m 1 -Po "(\d*\.\d*\.\d*)")
|
||||||
@ -59,6 +59,12 @@ get_pecl_version() {
|
|||||||
echo "$pecl_version"
|
echo "$pecl_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Function to install PECL extensions and accept default options
|
||||||
|
pecl_install() {
|
||||||
|
local extension=$1
|
||||||
|
yes '' | sudo pecl install -f "$extension" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
# Function to test if extension is loaded
|
# Function to test if extension is loaded
|
||||||
check_extension() {
|
check_extension() {
|
||||||
extension=$1
|
extension=$1
|
||||||
@ -139,21 +145,6 @@ add_unstable_extension() {
|
|||||||
add_pecl_extension "$extension" "$pecl_version" "$prefix"
|
add_pecl_extension "$extension" "$pecl_version" "$prefix"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to update extension
|
|
||||||
update_extension() {
|
|
||||||
extension=$1
|
|
||||||
latest_version=$2
|
|
||||||
current_version=$(php -r "echo phpversion('$extension');")
|
|
||||||
final_version=$(printf "%s\n%s" "$current_version" "$latest_version" | sort | tail -n 1)
|
|
||||||
if [ "$final_version" != "$current_version" ]; then
|
|
||||||
version_exists=$(apt-cache policy -- *"$extension" | grep "$final_version")
|
|
||||||
if [ -z "$version_exists" ]; then
|
|
||||||
update_lists
|
|
||||||
fi
|
|
||||||
$apt_install php"$version"-"$extension"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to configure composer
|
# Function to configure composer
|
||||||
configure_composer() {
|
configure_composer() {
|
||||||
tool_path=$1
|
tool_path=$1
|
||||||
@ -219,7 +210,7 @@ add_devtools() {
|
|||||||
|
|
||||||
# Function to setup the nightly build from master branch
|
# Function to setup the nightly build from master branch
|
||||||
setup_master() {
|
setup_master() {
|
||||||
curl -sSL https://github.com/shivammathur/php-builder/releases/latest/download/install.sh | bash -s "github"
|
curl -sL https://github.com/shivammathur/php-builder/releases/latest/download/install.sh | bash -s "github"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Function to setup PECL
|
# Function to setup PECL
|
||||||
|
@ -139,10 +139,6 @@ Function Edit-ComposerConfig() {
|
|||||||
if (Test-Path env:COMPOSER_TOKEN) {
|
if (Test-Path env:COMPOSER_TOKEN) {
|
||||||
composer -q global config github-oauth.github.com $env:COMPOSER_TOKEN
|
composer -q global config github-oauth.github.com $env:COMPOSER_TOKEN
|
||||||
}
|
}
|
||||||
# TODO: Remove after composer 2.0 update, fixes peer fingerprint error
|
|
||||||
if ($version -lt 5.6) {
|
|
||||||
composer -q global config repos.packagist composer https://repo-ca-bhs-1.packagist.org
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Function Add-Tool() {
|
Function Add-Tool() {
|
||||||
@ -261,9 +257,11 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
|
|||||||
}
|
}
|
||||||
if ($version -eq $master_version) {
|
if ($version -eq $master_version) {
|
||||||
$version = 'master'
|
$version = 'master'
|
||||||
|
Invoke-WebRequest -UseBasicParsing -Uri https://dl.bintray.com/shivammathur/php/Install-PhpMaster.ps1 -OutFile $php_dir\Install-PhpMaster.ps1 > $null 2>&1
|
||||||
|
& $php_dir\Install-PhpMaster.ps1 -Architecture $arch -ThreadSafe $ts -Path $php_dir
|
||||||
|
} 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
|
|
||||||
} else {
|
} else {
|
||||||
$status = "Found"
|
$status = "Found"
|
||||||
}
|
}
|
||||||
@ -273,10 +271,4 @@ Set-PhpIniKey -Key 'date.timezone' -Value 'UTC' -Path $php_dir
|
|||||||
Set-PhpIniKey -Key 'memory_limit' -Value '-1' -Path $php_dir
|
Set-PhpIniKey -Key 'memory_limit' -Value '-1' -Path $php_dir
|
||||||
Enable-PhpExtension -Extension openssl, curl, opcache, mbstring -Path $php_dir
|
Enable-PhpExtension -Extension openssl, curl, opcache, mbstring -Path $php_dir
|
||||||
Update-PhpCAInfo -Path $php_dir -Source CurrentUser
|
Update-PhpCAInfo -Path $php_dir -Source CurrentUser
|
||||||
if ($version -eq 'master') {
|
|
||||||
Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/shivammathur/php-extensions-windows/releases/latest/download/php_$env:phpts`_$arch`_pcov.dll" -OutFile $ext_dir"\php_pcov.dll" >$null 2>&1
|
|
||||||
Invoke-WebRequest -UseBasicParsing -Uri "https://github.com/shivammathur/php-extensions-windows/releases/latest/download/php_$env:phpts`_$arch`_xdebug.dll" -OutFile $ext_dir"\php_xdebug.dll" >$null 2>&1
|
|
||||||
Set-PhpIniKey -Key 'opcache.jit_buffer_size' -Value '256M' -Path $php_dir
|
|
||||||
Set-PhpIniKey -Key 'opcache.jit' -Value '1235' -Path $php_dir
|
|
||||||
}
|
|
||||||
Add-Log $tick "PHP" "$status PHP $($installed.FullVersion)"
|
Add-Log $tick "PHP" "$status PHP $($installed.FullVersion)"
|
||||||
|
Reference in New Issue
Block a user