Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7eb28d3738 | ||
|
|
2e947f1f69 | ||
|
|
2a5212466c | ||
|
|
9c28f9ba58 | ||
|
|
b9f1db485f | ||
|
|
588b5da142 | ||
|
|
a0edbac27b | ||
|
|
606ac25b84 | ||
|
|
ea566b68c0 | ||
|
|
4f124b97f7 | ||
|
|
8fe6ba1e38 | ||
|
|
193510cd90 | ||
|
|
b5f04d97d9 | ||
|
|
4b56933e00 | ||
|
|
fc14643b0a | ||
|
|
fdb0d9d1a7 | ||
|
|
622cada40f | ||
|
|
2a620039e8 | ||
|
|
376a964e21 | ||
|
|
d6560b1fbb | ||
|
|
868f02c3ff | ||
|
|
18975ec414 | ||
|
|
c49792fb59 | ||
|
|
806c3cc058 | ||
|
|
c665c7a15b | ||
|
|
b30e4bc764 | ||
|
|
436881d084 | ||
|
|
14d9660823 | ||
|
|
efffd0e4f2 | ||
|
|
d802457674 |
4
.github/workflows/docs.yml
vendored
4
.github/workflows/docs.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-22.04, ubuntu-20.04, windows-2022, macos-12]
|
||||
operating-system: [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04, windows-2022, macos-12]
|
||||
php-versions: ['5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
|
||||
steps:
|
||||
- name: Setup PHP
|
||||
@@ -72,7 +72,7 @@ jobs:
|
||||
git config --local user.name "${{ github.repository_owner }}"
|
||||
- name: Combine
|
||||
run: |
|
||||
for os in ubuntu-22.04 ubuntu-20.04 windows-2022 windows-2019 macos-11 macos-12 macos-13; do
|
||||
for os in ubuntu-24.04 ubuntu-22.04 ubuntu-20.04 windows-2022 windows-2019 macos-11 macos-12 macos-13; do
|
||||
echo "These are extensions which are loaded by default on the following PHP versions. More extensions which are available as packages and available on pecl are supported by setup-php. Refer to [php extension support](https://github.com/shivammathur/setup-php#heavy_plus_sign-php-extension-support) for more details." > Php-extensions-loaded-on-"$os".md
|
||||
for version in 5.3 5.4 5.5 5.6 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 8.4; do
|
||||
if [[ "$os" = "macos-11" || "$os" = "macos-13" ]]; then
|
||||
|
||||
4
.github/workflows/php.yml
vendored
4
.github/workflows/php.yml
vendored
@@ -28,10 +28,10 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-22.04, ubuntu-20.04, windows-2019, macos-latest]
|
||||
operating-system: [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04, windows-2019, macos-13]
|
||||
php-versions: ['5.3', '5.4', '5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4']
|
||||
include:
|
||||
- operating-system: ubuntu-22.04
|
||||
- operating-system: ubuntu-24.04
|
||||
php-versions: ''
|
||||
php-version-file: 'php-version-file'
|
||||
env:
|
||||
|
||||
11
README.md
11
README.md
@@ -70,6 +70,7 @@ Both `GitHub-hosted` and `self-hosted` runners are supported by `setup-php` on t
|
||||
|
||||
| Virtual environment | YAML workflow label | Pre-installed PHP |
|
||||
|---------------------|------------------------------------|------------------------|
|
||||
| Ubuntu 24.04 | `ubuntu-24.04` | `PHP 8.3` |
|
||||
| Ubuntu 22.04 | `ubuntu-latest` or `ubuntu-22.04` | `PHP 8.1` |
|
||||
| Ubuntu 20.04 | `ubuntu-20.04` | `PHP 7.4` to `PHP 8.3` |
|
||||
| Windows Server 2022 | `windows-latest` or `windows-2022` | `PHP 8.3` |
|
||||
@@ -82,6 +83,7 @@ Both `GitHub-hosted` and `self-hosted` runners are supported by `setup-php` on t
|
||||
|
||||
| Host OS/Virtual environment | YAML workflow label |
|
||||
|----------------------------------|----------------------------|
|
||||
| Ubuntu 24.04 | `self-hosted` or `Linux` |
|
||||
| Ubuntu 22.04 | `self-hosted` or `Linux` |
|
||||
| Ubuntu 20.04 | `self-hosted` or `Linux` |
|
||||
| Debian 11 | `self-hosted` or `Linux` |
|
||||
@@ -100,7 +102,8 @@ Both `GitHub-hosted` and `self-hosted` runners are supported by `setup-php` on t
|
||||
|
||||
On all supported OS/Platforms the following PHP versions can be set up as per the runner.
|
||||
|
||||
- PHP 5.3 to PHP 8.4 on GitHub-hosted runners.
|
||||
- PHP 5.3 to PHP 8.4 on GitHub-hosted runners, except for macOS ARM64 runners (macos-14).
|
||||
- PHP 5.6 to PHP 8.4 on GitHub-hosted macOS ARM64 runners (macos-14).
|
||||
- PHP 5.6 to PHP 8.4 on self-hosted runners.
|
||||
|
||||
| PHP Version | Stability | Release Support | Runner Support |
|
||||
@@ -223,7 +226,7 @@ PHP extensions can be set up using the `extensions` input. It accepts a `string`
|
||||
|
||||
These tools can be set up globally using the `tools` input. It accepts a string in csv-format.
|
||||
|
||||
[`behat`], [`blackfire`], [`blackfire-player`], [`box`], [`castor`], [`churn`], [`codeception`], [`composer`], [`composer-normalize`], [`composer-prefetcher`], [`composer-require-checker`], [`composer-unused`], [`cs2pr`], [`deployer`], [`flex`], [`grpc_php_plugin`], [`infection`], [`parallel-lint`], [`pecl`], [`phan`], [`phing`], [`phinx`], [`phive`], [`php-config`], [`php-cs-fixer`], [`php-scoper`], [`phpcbf`], [`phpcpd`], [`phpcs`], [`phpdoc`] or [`phpDocumentor`], [`phpize`], [`phplint`], [`phpmd`], [`phpspec`], [`phpstan`], [`phpunit`], [`phpunit-bridge`], [`phpunit-polyfills`], [`pint`], [`prestissimo`], [`protoc`], [`psalm`], [`rector`], [`symfony`] or [`symfony-cli`], [`vapor`] or [`vapor-cli`], [`wp`] or [`wp-cli`]
|
||||
[`behat`], [`blackfire`], [`blackfire-player`], [`box`], [`castor`], [`churn`], [`codeception`], [`composer`], [`composer-normalize`], [`composer-prefetcher`], [`composer-require-checker`], [`composer-unused`], [`cs2pr`], [`deployer`], [`ecs`], [`flex`], [`grpc_php_plugin`], [`infection`], [`parallel-lint`], [`pecl`], [`phan`], [`phing`], [`phinx`], [`phive`], [`php-config`], [`php-cs-fixer`], [`php-scoper`], [`phpcbf`], [`phpcpd`], [`phpcs`], [`phpdoc`] or [`phpDocumentor`], [`phpize`], [`phplint`], [`phpmd`], [`phpspec`], [`phpstan`], [`phpunit`], [`phpunit-bridge`], [`phpunit-polyfills`], [`pint`], [`prestissimo`], [`protoc`], [`psalm`], [`rector`], [`symfony`] or [`symfony-cli`], [`vapor`] or [`vapor-cli`], [`wp`] or [`wp-cli`]
|
||||
|
||||
```yaml
|
||||
- name: Setup PHP with tools
|
||||
@@ -716,6 +719,9 @@ Choose the image tag which matches the `runs-on` property in your workflow. For
|
||||
# For runs-on: ubuntu-latest
|
||||
act -P ubuntu-latest=shivammathur/node:latest
|
||||
|
||||
# For runs-on: ubuntu-24.04
|
||||
act -P ubuntu-24.04=shivammathur/node:2404
|
||||
|
||||
# For runs-on: ubuntu-22.04
|
||||
act -P ubuntu-22.04=shivammathur/node:2204
|
||||
|
||||
@@ -1049,6 +1055,7 @@ These companies generously provide setup-php their products and services to aid
|
||||
[`composer-unused`]: https://github.com/composer-unused/composer-unused
|
||||
[`cs2pr`]: https://github.com/staabm/annotate-pull-request-from-checkstyle
|
||||
[`deployer`]: https://deployer.org/
|
||||
[`ecs`]: https://github.com/easy-coding-standard/easy-coding-standard
|
||||
[`flex`]: https://flex.symfony.com/
|
||||
[`grpc_php_plugin`]: https://grpc.io/
|
||||
[`infection`]: https://infection.github.io/
|
||||
|
||||
@@ -434,7 +434,7 @@ describe('Tools tests', () => {
|
||||
|
||||
it.each([
|
||||
[
|
||||
'behat, blackfire, blackfire-player, churn, composer-normalize, composer-require-checker, composer-unused, cs2pr:1.2.3, flex, grpc_php_plugin:1.2.3, infection, phan, phan:1.2.3, phing:1.2.3, phinx, phive:1.2.3, php-config, phpcbf, phpcpd, phpcs, phpdoc, phpize, phpmd, phpspec, phpunit-bridge:5.6, phpunit-polyfills:1.0.1, protoc:v1.2.3, psalm, rector, symfony-cli, vapor-cli, wp-cli',
|
||||
'behat, blackfire, blackfire-player, churn, composer-normalize, composer-require-checker, composer-unused, cs2pr:1.2.3, ecs, flex, grpc_php_plugin:1.2.3, infection, phan, phan:1.2.3, phing:1.2.3, phinx, phive:1.2.3, php-config, phpcbf, phpcpd, phpcs, phpdoc, phpize, phpmd, phpspec, phpunit-bridge:5.6, phpunit-polyfills:1.0.1, protoc:v1.2.3, psalm, rector, symfony-cli, vapor-cli, wp-cli',
|
||||
[
|
||||
'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-7.4-stable.phar,https://dl.cloudsmith.io/public/shivammathur/composer-cache/raw/files/composer-7.4-stable.phar,https://getcomposer.org/composer-stable.phar composer',
|
||||
'add_composer_tool behat behat behat/ scoped',
|
||||
@@ -468,7 +468,8 @@ describe('Tools tests', () => {
|
||||
'add_composer_tool rector rector rector/ scoped',
|
||||
'add_symfony latest',
|
||||
'add_composer_tool vapor-cli vapor-cli laravel/ scoped',
|
||||
'add_tool https://github.com/wp-cli/builds/blob/gh-pages/phar/wp-cli.phar?raw=true wp-cli "--version"'
|
||||
'add_tool https://github.com/wp-cli/builds/blob/gh-pages/phar/wp-cli.phar?raw=true wp-cli "--version"',
|
||||
'add_composer_tool easy-coding-standard easy-coding-standard symplify/ scoped'
|
||||
]
|
||||
]
|
||||
])('checking addTools on darwin', async (tools_csv, scripts) => {
|
||||
|
||||
@@ -177,9 +177,9 @@ describe('Utils tests', () => {
|
||||
});
|
||||
|
||||
it('checking suppressOutput', async () => {
|
||||
expect(await utils.suppressOutput('win32')).toEqual(' >$null 2>&1');
|
||||
expect(await utils.suppressOutput('linux')).toEqual(' >/dev/null 2>&1');
|
||||
expect(await utils.suppressOutput('darwin')).toEqual(' >/dev/null 2>&1');
|
||||
expect(await utils.suppressOutput('win32')).toEqual(' ');
|
||||
expect(await utils.suppressOutput('linux')).toEqual(' ');
|
||||
expect(await utils.suppressOutput('darwin')).toEqual(' ');
|
||||
expect(await utils.suppressOutput('openbsd')).toContain(
|
||||
'Platform openbsd is not supported'
|
||||
);
|
||||
|
||||
2
dist/index.js
vendored
2
dist/index.js
vendored
File diff suppressed because one or more lines are too long
1104
package-lock.json
generated
1104
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
16
package.json
16
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "setup-php",
|
||||
"version": "2.30.2",
|
||||
"version": "2.31.0",
|
||||
"private": false,
|
||||
"description": "Setup PHP for use with GitHub Actions",
|
||||
"main": "lib/install.js",
|
||||
@@ -41,22 +41,22 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^29.5.12",
|
||||
"@types/node": "^20.12.2",
|
||||
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
||||
"@typescript-eslint/parser": "^7.4.0",
|
||||
"@types/node": "^20.14.8",
|
||||
"@typescript-eslint/eslint-plugin": "^7.13.1",
|
||||
"@typescript-eslint/parser": "^7.13.1",
|
||||
"@vercel/ncc": "^0.38.1",
|
||||
"eslint": "^8.57.0",
|
||||
"eslint-config-prettier": "^9.1.0",
|
||||
"eslint-plugin-import": "^2.29.1",
|
||||
"eslint-plugin-jest": "^27.9.0",
|
||||
"eslint-plugin-jest": "^28.6.0",
|
||||
"eslint-plugin-prettier": "^5.1.3",
|
||||
"jest": "^29.7.0",
|
||||
"jest-circus": "^29.7.0",
|
||||
"nock": "^13.5.4",
|
||||
"prettier": "^3.2.5",
|
||||
"prettier": "^3.3.2",
|
||||
"simple-git-hooks": "^2.11.1",
|
||||
"ts-jest": "^29.1.2",
|
||||
"typescript": "^5.4.3"
|
||||
"ts-jest": "^29.1.5",
|
||||
"typescript": "^5.5.2"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/shivammathur/setup-php/issues"
|
||||
|
||||
@@ -17,7 +17,7 @@ export async function addINIValuesUnix(
|
||||
return (
|
||||
'echo "' +
|
||||
ini_values.join('\n') +
|
||||
'" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null 2>&1' +
|
||||
'" | sudo tee -a "${pecl_file:-${ini_file[@]}}" ' +
|
||||
script
|
||||
);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ couchbase=30
|
||||
decimal=30
|
||||
ds=30
|
||||
event=30
|
||||
ev=30
|
||||
grpc=30
|
||||
http=25
|
||||
pecl_http=25
|
||||
|
||||
@@ -318,5 +318,11 @@
|
||||
"extension": ".phar",
|
||||
"version_parameter": "--version",
|
||||
"version_prefix": "v"
|
||||
},
|
||||
"easy-coding-standard": {
|
||||
"type": "composer",
|
||||
"alias": "ecs",
|
||||
"repository": "symplify/easy-coding-standard",
|
||||
"scope": "scoped"
|
||||
}
|
||||
}
|
||||
@@ -35,9 +35,9 @@ export async function addExtensionDarwin(
|
||||
// match 5.3blackfire...8.3blackfire
|
||||
// match 5.3blackfire-(semver)...8.3blackfire-(semver)
|
||||
// match couchbase, event, geos, pdo_oci, oci8, http, pecl_http
|
||||
// match 5.3ioncube...7.4ioncube
|
||||
// match 5.3ioncube...8.2ioncube
|
||||
// match 7.0phalcon3...7.3phalcon3, 7.2phalcon4...7.4phalcon4, and 7.4phalcon5...8.3phalcon5
|
||||
// match 7.0zephir_parser...8.2zephir_parser
|
||||
// match 7.0zephir_parser...8.3zephir_parser
|
||||
case /^(7\.4|8\.[0-3])relay(-v?\d+\.\d+\.\d+)?$/.test(version_extension):
|
||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-3])blackfire(-\d+\.\d+\.\d+)?$/.test(
|
||||
version_extension
|
||||
@@ -45,12 +45,12 @@ export async function addExtensionDarwin(
|
||||
case /^couchbase|^event|^gearman$|^geos$|^pdo_oci$|^oci8$|^(pecl_)?http|^pdo_firebird$/.test(
|
||||
extension
|
||||
):
|
||||
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-2])ioncube$/.test(version_extension):
|
||||
case /(5\.6|7\.[0-3])phalcon3|7\.[2-4]phalcon4|(7\.4|8\.[0-3])phalcon5?/.test(
|
||||
version_extension
|
||||
):
|
||||
case /(?<!5\.[3-6])(pdo_)?sqlsrv$/.test(version_extension):
|
||||
case /^(7\.[0-4]|8\.[0-2])zephir_parser(-v?\d+\.\d+\.\d+)?$/.test(
|
||||
case /^(7\.[0-4]|8\.[0-3])zephir_parser(-v?\d+\.\d+\.\d+)?$/.test(
|
||||
version_extension
|
||||
):
|
||||
add_script += await utils.customPackage(
|
||||
@@ -137,21 +137,21 @@ export async function addExtensionWindows(
|
||||
// match 5.3blackfire...8.3blackfire
|
||||
// match 5.3blackfire-(semver)...8.3blackfire-(semver)
|
||||
// match pdo_oci and oci8
|
||||
// match 5.3ioncube...7.4ioncube
|
||||
// match 5.3ioncube...8.2ioncube
|
||||
// match 7.0phalcon3...7.3phalcon3, 7.2phalcon4...7.4phalcon4, and 7.4phalcon5...8.3phalcon5
|
||||
// match 7.1pecl_http...8.1pecl_http and 7.1http...8.1http
|
||||
// match 7.0zephir_parser...8.2zephir_parser
|
||||
// match 7.0zephir_parser...8.3zephir_parser
|
||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-3])blackfire(-\d+\.\d+\.\d+)?$/.test(
|
||||
version_extension
|
||||
):
|
||||
case /^pdo_oci$|^oci8$|^pdo_firebird$/.test(extension):
|
||||
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-2])ioncube$/.test(version_extension):
|
||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$|^(7\.4|8\.[0-3])phalcon5?$/.test(
|
||||
version_extension
|
||||
):
|
||||
case /^(7\.[1-4]|8\.1)(pecl_)?http/.test(version_extension):
|
||||
case /(?<!5\.[3-6])(pdo_)?sqlsrv$/.test(version_extension):
|
||||
case /^(7\.[0-4]|8\.[0-2])zephir_parser(-v?\d+\.\d+\.\d+)?$/.test(
|
||||
case /^(7\.[0-4]|8\.[0-3])zephir_parser(-v?\d+\.\d+\.\d+)?$/.test(
|
||||
version_extension
|
||||
):
|
||||
add_script += await utils.customPackage(
|
||||
@@ -268,9 +268,9 @@ export async function addExtensionLinux(
|
||||
// match 5.3blackfire-(semver)...8.3blackfire-(semver)
|
||||
// match 5.3pdo_cubrid...7.2php_cubrid, 5.3cubrid...7.4cubrid
|
||||
// match couchbase, geos, pdo_oci, oci8, http, pecl_http
|
||||
// match 5.3ioncube...7.4ioncube
|
||||
// match 5.3ioncube...8.2ioncube
|
||||
// match 7.0phalcon3...7.3phalcon3, 7.2phalcon4...7.4phalcon4, 7.4phalcon5...8.3phalcon5
|
||||
// match 7.0zephir_parser...8.2zephir_parser
|
||||
// match 7.0zephir_parser...8.3zephir_parser
|
||||
case /^(7\.4|8\.[0-3])relay(-v?\d+\.\d+\.\d+)?$/.test(version_extension):
|
||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-3])blackfire(-\d+\.\d+\.\d+)?$/.test(
|
||||
version_extension
|
||||
@@ -282,12 +282,12 @@ export async function addExtensionLinux(
|
||||
extension
|
||||
):
|
||||
case /(?<!5\.[3-5])intl-\d+\.\d+$/.test(version_extension):
|
||||
case /^(5\.[3-6]|7\.[0-4])ioncube$/.test(version_extension):
|
||||
case /^(5\.[3-6]|7\.[0-4]|8\.[0-2])ioncube$/.test(version_extension):
|
||||
case /^7\.[0-3]phalcon3$|^7\.[2-4]phalcon4$|^(7\.4|8\.[0-3])phalcon5?$/.test(
|
||||
version_extension
|
||||
):
|
||||
case /(?<!5\.[3-6])(pdo_)?sqlsrv$/.test(version_extension):
|
||||
case /^(7\.[0-4]|8\.[0-2])zephir_parser(-v?\d+\.\d+\.\d+)?$/.test(
|
||||
case /^(7\.[0-4]|8\.[0-3])zephir_parser(-v?\d+\.\d+\.\d+)?$/.test(
|
||||
version_extension
|
||||
):
|
||||
add_script += await utils.customPackage(
|
||||
|
||||
@@ -13,9 +13,9 @@ handle_dependency_extensions() {
|
||||
suffix="$(get_php_formula_suffix)"
|
||||
if [[ -n "$suffix" ]]; then
|
||||
brew_opts=(-sf)
|
||||
patch_abstract_file >/dev/null 2>&1
|
||||
patch_abstract_file
|
||||
for dependency_extension in "${dependency_extensions[@]}"; do
|
||||
brew install "${brew_opts[@]}" "$ext_tap/$dependency_extension@$version" >/dev/null 2>&1 && copy_brew_extensions "$dependency_extension"
|
||||
brew install "${brew_opts[@]}" "$ext_tap/$dependency_extension@$version" && copy_brew_extensions "$dependency_extension"
|
||||
done
|
||||
fi
|
||||
}
|
||||
@@ -31,7 +31,7 @@ disable_extension_helper() {
|
||||
sudo sed -Ei '' "/=(.*\/)?\"?$extension(.so)?$/d" "${ini_file:?}"
|
||||
sudo rm -rf "$scan_dir"/*"$extension"* /tmp/php"$version"_extensions
|
||||
mkdir -p /tmp/extdisabled/"$version"
|
||||
echo '' | sudo tee /tmp/extdisabled/"$version"/"$extension" >/dev/null 2>&1
|
||||
echo '' | sudo tee /tmp/extdisabled/"$version"/"$extension"
|
||||
}
|
||||
|
||||
# Function to get extension name from brew formula.
|
||||
@@ -70,9 +70,9 @@ add_brew_extension() {
|
||||
add_brew_tap "$php_tap"
|
||||
add_brew_tap "$ext_tap"
|
||||
sudo mv "$tap_dir"/"$ext_tap"/.github/deps/"$formula"/* "${core_repo:?}/Formula/" 2>/dev/null || true
|
||||
update_dependencies >/dev/null 2>&1
|
||||
handle_dependency_extensions "$formula" "$extension" >/dev/null 2>&1
|
||||
(brew install "${brew_opts[@]}" "$ext_tap/$formula@$version" >/dev/null 2>&1 && copy_brew_extensions "$formula") || pecl_install "$extension" >/dev/null 2>&1
|
||||
update_dependencies
|
||||
handle_dependency_extensions "$formula" "$extension"
|
||||
(brew install "${brew_opts[@]}" "$ext_tap/$formula@$version" && copy_brew_extensions "$formula") || pecl_install "$extension"
|
||||
add_extension_log "$extension" "Installed and enabled"
|
||||
fi
|
||||
}
|
||||
@@ -81,7 +81,7 @@ add_brew_extension() {
|
||||
patch_abstract_file() {
|
||||
abstract_path="$tap_dir"/"$ext_tap"/Abstract/abstract-php-extension.rb
|
||||
if [[ -e "$abstract_path" && ! -e /tmp/abstract_patch ]]; then
|
||||
echo '' | sudo tee /tmp/abstract_patch >/dev/null 2>&1
|
||||
echo '' | sudo tee /tmp/abstract_patch
|
||||
sudo sed -i '' -e "s|php@#{\(.*\)}|php@#{\1}$suffix|g" -e "s|php_version /|\"#{php_version}$suffix\" /|g" "$abstract_path"
|
||||
fi
|
||||
}
|
||||
@@ -91,9 +91,9 @@ add_extension_helper() {
|
||||
local extension=$1
|
||||
prefix=$2
|
||||
if [[ "$version" =~ ${old_versions:?} ]] && [ "$extension" = "imagick" ]; then
|
||||
run_script "php5-darwin" "${version/./}" "$extension" >/dev/null 2>&1
|
||||
run_script "php5-darwin" "${version/./}" "$extension"
|
||||
else
|
||||
pecl_install "$extension" >/dev/null 2>&1 &&
|
||||
pecl_install "$extension" &&
|
||||
if [[ "$version" =~ ${old_versions:?} ]]; then echo "$prefix=$ext_dir/$extension.so" >>"$ini_file"; fi
|
||||
fi
|
||||
add_extension_log "$extension" "Installed and enabled"
|
||||
@@ -107,8 +107,8 @@ add_devtools() {
|
||||
|
||||
# Function to handle request to add PECL.
|
||||
add_pecl() {
|
||||
enable_extension xml extension >/dev/null 2>&1
|
||||
configure_pecl >/dev/null 2>&1
|
||||
enable_extension xml extension
|
||||
configure_pecl
|
||||
pear_version=$(get_tool_version "pecl" "version")
|
||||
add_log "${tick:?}" "PECL" "Found PECL $pear_version"
|
||||
}
|
||||
@@ -138,7 +138,7 @@ update_dependencies() {
|
||||
for repo in "$brew_repo" "$core_repo"; do
|
||||
git_retry -C "$repo" fetch origin master && git -C "$repo" reset --hard origin/master
|
||||
done
|
||||
echo '' | sudo tee /tmp/update_dependencies >/dev/null 2>&1
|
||||
echo '' | sudo tee /tmp/update_dependencies
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -164,10 +164,11 @@ add_php() {
|
||||
suffix="$(get_php_formula_suffix)"
|
||||
php_formula="shivammathur/php/php@$version$suffix"
|
||||
if [[ "$existing_version" != "false" && -z "$suffix" ]]; then
|
||||
([ "$action" = "upgrade" ] && brew upgrade -f "$php_formula") || brew unlink "$php_formula"
|
||||
([ "$action" = "upgrade" ] && brew upgrade -f --overwrite "$php_formula") || brew unlink "$php_formula"
|
||||
else
|
||||
brew install -f "$php_formula"
|
||||
brew install -f --overwrite "$php_formula"
|
||||
fi
|
||||
sudo chown -R "$(id -un)":"$(id -gn)" "$brew_prefix"
|
||||
brew link --force --overwrite "$php_formula"
|
||||
}
|
||||
|
||||
@@ -195,7 +196,7 @@ add_php_config() {
|
||||
if [[ "$ini" = "production" || "$ini" = "development" ]]; then
|
||||
sudo cp "$ini_dir"/php.ini-"$ini" "$ini_dir"/php.ini
|
||||
elif [ "$ini" = "none" ]; then
|
||||
echo '' | sudo tee "${ini_file[@]}" >/dev/null 2>&1
|
||||
echo '' | sudo tee "${ini_file[@]}"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -214,20 +215,20 @@ setup_php() {
|
||||
php_config="$(command -v php-config 2>/dev/null)"
|
||||
existing_version=$(get_brewed_php)
|
||||
if [[ "$version" =~ ${old_versions:?} ]]; then
|
||||
run_script "php5-darwin" "${version/./}" >/dev/null 2>&1
|
||||
run_script "php5-darwin" "${version/./}"
|
||||
status="Installed"
|
||||
elif [ "$existing_version" != "$version" ]; then
|
||||
add_php "install" "$existing_version" >/dev/null 2>&1
|
||||
add_php "install" "$existing_version"
|
||||
status="Installed"
|
||||
elif [ "$existing_version" = "$version" ] && [ "${update:?}" = "true" ]; then
|
||||
add_php "upgrade" "$existing_version" >/dev/null 2>&1
|
||||
add_php "upgrade" "$existing_version"
|
||||
status="Updated to"
|
||||
else
|
||||
add_php "upgrade" "$existing_version" >/dev/null 2>&1
|
||||
add_php "upgrade" "$existing_version"
|
||||
status="Updated to"
|
||||
fi
|
||||
php_config="$(command -v php-config)"
|
||||
ext_dir="$(grep 'extension_dir=' "$php_config" | cut -d "'" -f 2)"
|
||||
ext_dir="$(sed -n "s/.*extension_dir=['\"]\(.*\)['\"].*/\1/p" "$php_config")"
|
||||
ini_dir="$(php_ini_path)"
|
||||
scan_dir="$(get_scan_dir)"
|
||||
ini_file="$ini_dir"/php.ini
|
||||
|
||||
@@ -66,7 +66,7 @@ Function Enable-Extension() {
|
||||
}
|
||||
|
||||
# Function to add custom built PHP extension for nightly builds.
|
||||
Function Add-NightlyExtension {
|
||||
Function Add-ExtensionFromGithub {
|
||||
Param (
|
||||
[Parameter(Position = 0, Mandatory = $true)]
|
||||
[ValidateNotNull()]
|
||||
@@ -123,7 +123,7 @@ Function Add-Extension {
|
||||
}
|
||||
else {
|
||||
if(($version -match $nightly_versions) -and (Select-String -Path $src\configs\windows_extensions -Pattern $extension -SimpleMatch -Quiet)) {
|
||||
Add-NightlyExtension $extension
|
||||
Add-ExtensionFromGithub $extension
|
||||
} else {
|
||||
# Patch till DLLs for PHP 8.1 and above are released as stable.
|
||||
$minimumStability = $stability
|
||||
|
||||
@@ -48,7 +48,7 @@ enable_extension() {
|
||||
[ -d "$modules_dir" ] && sudo find "$modules_dir" -path "*disabled*$1" -delete
|
||||
enable_extension_dependencies "$1" "$2"
|
||||
enable_cache_extension_dependencies "$1" "$2"
|
||||
if ! [[ "${version:?}" =~ ${old_versions:?} ]] && command -v phpenmod >/dev/null 2>&1; then
|
||||
if ! [[ "${version:?}" =~ ${old_versions:?} ]] && command -v phpenmod ; then
|
||||
sudo sed -Ei "/=(.*\/)?\"?$extension(.so)?\"?$/d" "$pecl_file"
|
||||
mod="${ini_dir:?}"/../mods-available/"$1".ini
|
||||
if ! [ -e "$mod" ]; then
|
||||
@@ -57,7 +57,7 @@ enable_extension() {
|
||||
[ -n "$mod_priority_line" ] && priority=$(echo "$mod_priority_line" | cut -d'=' -f 2)
|
||||
(echo "; priority=$priority"; echo "$2=${ext_dir:?}/$1.so") | sudo tee "$mod" >/dev/null
|
||||
fi
|
||||
sudo phpenmod -v "$version" "$1" >/dev/null 2>&1
|
||||
sudo phpenmod -v "$version" "$1"
|
||||
else
|
||||
echo "$2=${ext_dir:?}/$1.so" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null
|
||||
fi
|
||||
@@ -69,7 +69,7 @@ enable_extensions() {
|
||||
local extensions=("$@")
|
||||
to_wait=()
|
||||
for ext in "${extensions[@]}"; do
|
||||
enable_extension "$ext" extension >/dev/null 2>&1 &
|
||||
enable_extension "$ext" extension &
|
||||
to_wait+=($!)
|
||||
done
|
||||
wait "${to_wait[@]}"
|
||||
@@ -77,7 +77,7 @@ enable_extensions() {
|
||||
|
||||
# Function to get a map of extensions and their dependent shared extensions.
|
||||
get_extension_map() {
|
||||
php -d'error_reporting=0' "${src:?}"/scripts/extensions/extension_map.php /tmp/map"$version".orig >/dev/null 2>&1
|
||||
php -d'error_reporting=0' "${src:?}"/scripts/extensions/extension_map.php /tmp/map"$version".orig
|
||||
}
|
||||
|
||||
# Function to enable extension dependencies which are also extensions.
|
||||
@@ -123,7 +123,7 @@ disable_extension() {
|
||||
disable_all_shared() {
|
||||
get_extension_map
|
||||
sudo sed -i.orig -E -e "/^(zend_)?extension\s*=/d" "${ini_file[@]}" "$pecl_file" 2>/dev/null || true
|
||||
sudo find "${ini_dir:-$scan_dir}"/.. -name "*.ini" -not -path "*php.ini" -not -path "*phar.ini" -not -path "*pecl.ini" -not -path "*mods-available*" -delete >/dev/null 2>&1 || true
|
||||
sudo find "${ini_dir:-$scan_dir}"/.. -name "*.ini" -not -path "*php.ini" -not -path "*phar.ini" -not -path "*pecl.ini" -not -path "*mods-available*" -delete || true
|
||||
mkdir -p /tmp/extdisabled/"$version"
|
||||
sudo rm -f /tmp/php"$version"_extensions
|
||||
sudo find "$ext_dir" -name '*.so' -print0 | xargs -0 -n 1 basename -s .so | xargs -I{} touch /tmp/extdisabled/"$version"/{}
|
||||
@@ -137,7 +137,7 @@ configure_pecl() {
|
||||
for script in pear pecl; do
|
||||
sudo "$script" channel-update "$script".php.net
|
||||
done
|
||||
echo '' | sudo tee /tmp/pecl_config >/dev/null 2>&1
|
||||
echo '' | sudo tee /tmp/pecl_config
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -175,8 +175,8 @@ get_pecl_version() {
|
||||
pecl_install() {
|
||||
local extension=$1
|
||||
local prefix=${2:-extension}
|
||||
add_pecl >/dev/null 2>&1
|
||||
disable_extension_helper "${extension%-*}" >/dev/null 2>&1
|
||||
add_pecl
|
||||
disable_extension_helper "${extension%-*}"
|
||||
# Compare version with 8.3 so it runs only on 8.4 and above
|
||||
# Install using the source interface as it allows for patching.
|
||||
if [[ $(printf "%s\n%s" "${version:?}" "8.3" | sort -V | head -n1) != "$version" ]]; then
|
||||
@@ -189,11 +189,11 @@ pecl_install() {
|
||||
prefix_opts="$(parse_args "$extension" CONFIGURE_PREFIX_OPTS) MAKEFLAGS='-j $cpu_count'"
|
||||
suffix_opts="$(parse_args "$extension" CONFIGURE_OPTS) $(parse_args "$extension" CONFIGURE_SUFFIX_OPTS)"
|
||||
IFS=' ' read -r -a libraries <<<"$(parse_args "$extension" LIBS) $(parse_args "$extension" "$(uname -s)"_LIBS)"
|
||||
(( ${#libraries[@]} )) && add_libs "${libraries[@]}" >/dev/null 2>&1
|
||||
(( ${#libraries[@]} )) && add_libs "${libraries[@]}"
|
||||
if [ "$version" = "5.3" ]; then
|
||||
yes '' 2>/dev/null | sudo "$prefix_opts" pecl install -f "$extension" >/dev/null 2>&1
|
||||
yes '' 2>/dev/null | sudo "$prefix_opts" pecl install -f "$extension"
|
||||
else
|
||||
yes '' 2>/dev/null | sudo "$prefix_opts" pecl install -f -D "$(parse_pecl_configure_options "$suffix_opts")" "$extension" >/dev/null 2>&1
|
||||
yes '' 2>/dev/null | sudo "$prefix_opts" pecl install -f -D "$(parse_pecl_configure_options "$suffix_opts")" "$extension"
|
||||
fi
|
||||
local exit_code=$?
|
||||
sudo pecl info "$extension" | grep -iq 'zend extension' && prefix=zend_extension
|
||||
@@ -216,7 +216,7 @@ add_pecl_extension() {
|
||||
add_log "${tick:?}" "$extension" "Enabled"
|
||||
else
|
||||
[ -n "$pecl_version" ] && pecl_version="-$pecl_version"
|
||||
pecl_install "$extension$pecl_version" || add_extension "$extension" "$(get_extension_prefix "$extension")" >/dev/null 2>&1
|
||||
pecl_install "$extension$pecl_version" || add_extension "$extension" "$(get_extension_prefix "$extension")"
|
||||
extension_version="$(php -r "echo phpversion('$extension');")"
|
||||
[ -n "$extension_version" ] && extension_version="-$extension_version"
|
||||
add_extension_log "$extension$extension_version" "Installed and enabled"
|
||||
|
||||
@@ -8,6 +8,10 @@ add_blackfire() {
|
||||
status='Enabled'
|
||||
if ! shared_extension blackfire; then
|
||||
status='Installed and enabled'
|
||||
arch="$(uname -m)"
|
||||
arch_name="amd64"
|
||||
[[ "$arch" = "aarch64" || "$arch" = "arm64" ]] && arch_name="arm64"
|
||||
[ "${ts:?}" = 'zts' ] && no_dot_version="${no_dot_version}-zts"
|
||||
if [ "$extension_version" = "blackfire" ]; then
|
||||
if [[ ${version:?} =~ 5.[3-6] ]]; then
|
||||
extension_version='1.50.0'
|
||||
@@ -15,10 +19,14 @@ add_blackfire() {
|
||||
extension_version=$(get -s -n "" https://blackfire.io/api/v1/releases | grep -Eo 'php":"([0-9]+.[0-9]+.[0-9]+)' | cut -d '"' -f 3)
|
||||
fi
|
||||
fi
|
||||
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
|
||||
get -q -n "${ext_dir:?}/blackfire.so" https://packages.blackfire.io/binaries/blackfire-php/"$extension_version"/blackfire-php-"$platform"_"$arch_name"-php-"$no_dot_version".so
|
||||
fi
|
||||
disable_extension xdebug >/dev/null 2>&1
|
||||
disable_extension pcov >/dev/null 2>&1
|
||||
if [ -e "${ext_dir:?}/blackfire.so" ]; then
|
||||
disable_extension xdebug
|
||||
disable_extension pcov
|
||||
enable_extension blackfire extension
|
||||
add_extension_log blackfire "$status"
|
||||
else
|
||||
add_extension_log blackfire "Could not install blackfire on PHP ${semver:?}"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -7,15 +7,27 @@ add_couchbase_clibs() {
|
||||
else
|
||||
release=$(get -s -n "" "$trunk"/latest | grep -Eo -m 1 "[0-9]+\.[0-9]+\.[0-9]+" | head -n 1)
|
||||
fi
|
||||
[ "$VERSION_ID" = "22.04" ] && vid=20.04 || vid="$VERSION_ID"
|
||||
[ "$VERSION_CODENAME" = "jammy" ] && vcn=focal || vcn="$VERSION_CODENAME"
|
||||
[ "$VERSION_ID" = "24.04" ] && vid=22.04 || vid="$VERSION_ID"
|
||||
[ "$VERSION_CODENAME" = "noble" ] && vcn=jammy || vcn="$VERSION_CODENAME"
|
||||
deb_url="$trunk/download/$release/libcouchbase-${release}_ubuntu${vid/./}_${vcn}_amd64.tar"
|
||||
get -q -n /tmp/libcouchbase.tar "$deb_url"
|
||||
if ! [ -e /tmp/libcouchbase.tar ] || ! file /tmp/libcouchbase.tar | grep -q 'tar archive'; then
|
||||
deb_url="$trunk/download/$release/libcouchbase-${release}_ubuntu2004_focal_amd64.tar"
|
||||
get -q -n /tmp/libcouchbase.tar "$deb_url"
|
||||
add_old_libssl
|
||||
fi
|
||||
sudo tar -xf /tmp/libcouchbase.tar -C /tmp
|
||||
install_packages libev4 libevent-dev
|
||||
sudo dpkg -i /tmp/libcouchbase-*/*.deb
|
||||
}
|
||||
|
||||
add_old_libssl() {
|
||||
if [[ "$VERSION_ID" = "24.04" ]]; then
|
||||
get -q -n /tmp/libssl.deb http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.22_amd64.deb
|
||||
[ -e /tmp/libssl.deb ] && sudo dpkg -i /tmp/libssl.deb || add_extension_log "couchbase" "Could not install libssl1.1"
|
||||
fi
|
||||
}
|
||||
|
||||
add_couchbase_cxxlibs() {
|
||||
if [ "${runner:?}" = "self-hosted" ]; then
|
||||
add_list cmake https://apt.kitware.com/ubuntu/ https://apt.kitware.com/keys/kitware-archive-latest.asc "$VERSION_CODENAME" main
|
||||
@@ -33,7 +45,7 @@ get_couchbase_version() {
|
||||
elif [ "${version:?}" = '7.3' ]; then
|
||||
echo couchbase-3.2.2
|
||||
elif [ "${version:?}" = '7.4' ]; then
|
||||
echo couchbase-4.1.0
|
||||
echo couchbase-4.1.1
|
||||
else
|
||||
echo couchbase
|
||||
fi
|
||||
@@ -47,9 +59,9 @@ add_couchbase() {
|
||||
ext=$(get_couchbase_version)
|
||||
fi
|
||||
if [[ "$ext" =~ couchbase-[2-3].+ ]]; then
|
||||
add_couchbase_clibs "$ext" >/dev/null 2>&1
|
||||
add_couchbase_clibs "$ext"
|
||||
else
|
||||
add_couchbase_cxxlibs >/dev/null 2>&1
|
||||
add_couchbase_cxxlibs
|
||||
fi
|
||||
enable_extension "couchbase" "extension"
|
||||
if check_extension "couchbase"; then
|
||||
@@ -60,9 +72,9 @@ add_couchbase() {
|
||||
n_proc="$(nproc)"
|
||||
export COUCHBASE_SUFFIX_OPTS="CMAKE_BUILD_TYPE=Release"
|
||||
export CMAKE_BUILD_PARALLEL_LEVEL="$n_proc"
|
||||
add_extension_from_source couchbase https://pecl.php.net couchbase couchbase "${ext##*-}" extension pecl >/dev/null 2>&1
|
||||
add_extension_from_source couchbase https://pecl.php.net couchbase couchbase "${ext##*-}" extension pecl
|
||||
else
|
||||
pecl_install "${ext}" >/dev/null 2>&1
|
||||
pecl_install "${ext}"
|
||||
fi
|
||||
add_extension_log "couchbase" "Installed and enabled"
|
||||
fi
|
||||
|
||||
@@ -51,7 +51,7 @@ add_cubrid_helper() {
|
||||
add_cubrid() {
|
||||
ext=$1
|
||||
status='Enabled'
|
||||
add_cubrid_helper "$ext" >/dev/null 2>&1
|
||||
add_cubrid_helper "$ext"
|
||||
add_extension_log "$ext" "$status"
|
||||
check_extension "$ext" && add_license_log
|
||||
}
|
||||
|
||||
@@ -39,9 +39,9 @@ add_event() {
|
||||
add_log "${tick:?}" "event" "Enabled"
|
||||
else
|
||||
if ! [[ "${version:?}" =~ ${old_versions:?} ]] && [ "$os" = "Darwin" ]; then
|
||||
add_brew_extension event extension >/dev/null 2>&1
|
||||
add_brew_extension event extension
|
||||
else
|
||||
add_event_helper "$ext" >/dev/null 2>&1
|
||||
add_event_helper "$ext"
|
||||
fi
|
||||
add_extension_log "event" "Installed and enabled"
|
||||
fi
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
add_firebird_client_darwin() {
|
||||
firebird_tag='R3_0_7'
|
||||
pkg_name=$(get -s -n "" https://api.github.com/repos/FirebirdSQL/firebird/releases/tags/"$firebird_tag" | grep -Eo "Firebird-.*.pkg" | head -n 1)
|
||||
[ -z "$pkg_name" ] && pkg_name=$(get -s -n "" https://github.com/FirebirdSQL/firebird/releases/expanded_assets/"$firebird_tag" | grep -Eo "Firebird-.*.pkg" | head -n 1)
|
||||
firebird_tag='v5.0.0'
|
||||
arch_name='x64'
|
||||
arch="$(uname -m)"
|
||||
[[ "$arch" = "arm64" || "$arch" = "aarch64" ]] && arch_name='arm64'
|
||||
pkg_name=$(get -s -n "" https://api.github.com/repos/FirebirdSQL/firebird/releases/tags/"$firebird_tag" | grep -Eo "Firebird-.*.-$arch_name.pkg" | head -n 1)
|
||||
[ -z "$pkg_name" ] && pkg_name=$(get -s -n "" https://github.com/FirebirdSQL/firebird/releases/expanded_assets/"$firebird_tag" | grep -Eo "Firebird-.*.-$arch_name.pkg" | head -n 1)
|
||||
get -q -e "/tmp/firebird.pkg" https://github.com/FirebirdSQL/firebird/releases/download/"$firebird_tag"/"$pkg_name"
|
||||
sudo installer -pkg /tmp/firebird.pkg -target /
|
||||
sudo mkdir -p /opt/firebird/include /opt/firebird/lib
|
||||
sudo find /Library/Frameworks/Firebird.framework -name '*.h' -exec cp "{}" /opt/firebird/include \;
|
||||
sudo cp -a /Library/Frameworks/Firebird.framework/Headers/* /opt/firebird/include/
|
||||
sudo find /Library/Frameworks/Firebird.framework -name '*.dylib' -exec cp "{}" /opt/firebird/lib \;
|
||||
}
|
||||
|
||||
@@ -20,7 +23,7 @@ add_firebird_helper() {
|
||||
|
||||
add_firebird() {
|
||||
if [ "$(uname -s )" = "Darwin" ]; then
|
||||
add_firebird_client_darwin >/dev/null 2>&1
|
||||
add_firebird_client_darwin
|
||||
fi
|
||||
enable_extension pdo_firebird extension
|
||||
status="Enabled"
|
||||
@@ -28,12 +31,12 @@ add_firebird() {
|
||||
status="Installed and enabled"
|
||||
if [ "$(uname -s)" = "Linux" ]; then
|
||||
if [[ "${version:?}" =~ 5.3|${nightly_versions:?} ]]; then
|
||||
add_firebird_helper /usr >/dev/null 2>&1
|
||||
add_firebird_helper /usr
|
||||
else
|
||||
add_pdo_extension firebird >/dev/null 2>&1
|
||||
add_pdo_extension firebird
|
||||
fi
|
||||
else
|
||||
add_firebird_helper /opt/firebird >/dev/null 2>&1
|
||||
add_firebird_helper /opt/firebird
|
||||
fi
|
||||
fi
|
||||
add_extension_log pdo_firebird "$status"
|
||||
|
||||
@@ -18,7 +18,7 @@ add_gearman_helper() {
|
||||
add_gearman() {
|
||||
status="Enabled"
|
||||
if [ "$(uname -s)" = 'Linux' ]; then
|
||||
add_gearman_helper >/dev/null 2>&1
|
||||
add_gearman_helper
|
||||
add_extension_log "gearman" "$status"
|
||||
else
|
||||
add_brew_extension gearman extension
|
||||
|
||||
@@ -11,7 +11,7 @@ add_geos() {
|
||||
if check_extension "geos"; then
|
||||
add_log "${tick:?}" "geos" "Enabled"
|
||||
else
|
||||
add_geos_helper >/dev/null 2>&1
|
||||
add_geos_helper
|
||||
add_extension_log "geos" "Installed and enabled"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -40,12 +40,12 @@ Function Repair-ICU() {
|
||||
}
|
||||
|
||||
Function Add-Http() {
|
||||
Add-Extension iconv >$null 2>&1
|
||||
Add-Extension raphf >$null 2>&1
|
||||
Add-Extension iconv
|
||||
Add-Extension raphf
|
||||
if($version -lt '8.0') {
|
||||
Add-Extension propro >$null 2>&1
|
||||
Add-Extension propro
|
||||
}
|
||||
Add-Extension pecl_http >$null 2>&1
|
||||
Add-Extension pecl_http
|
||||
Repair-ICU
|
||||
Add-ExtensionLog http "Installed and enabled"
|
||||
}
|
||||
@@ -75,7 +75,7 @@ add_http_latest() {
|
||||
if [ "$os" = "Linux" ]; then
|
||||
add_http_dependencies
|
||||
package="php$version-http"
|
||||
add_ppa ondrej/php >/dev/null 2>&1 || update_ppa ondrej/php
|
||||
add_ppa ondrej/php || update_ppa ondrej/php
|
||||
(check_package "$package" && install_packages "$package") || add_http_helper "$(get_http_version)" "$os"
|
||||
else
|
||||
if ! [[ "${version:?}" =~ ${old_versions:?} ]]; then
|
||||
@@ -103,9 +103,9 @@ add_http() {
|
||||
ext=$1
|
||||
status="Enabled"
|
||||
if [[ "$ext" =~ ^(pecl_http|http)$ ]]; then
|
||||
add_http_latest >/dev/null 2>&1
|
||||
add_http_latest
|
||||
else
|
||||
add_http_version "$ext" >/dev/null 2>&1
|
||||
add_http_version "$ext"
|
||||
fi
|
||||
add_extension_log "http" "$status"
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ add_intl() {
|
||||
add_log "${cross:?}" "intl" "ICU $icu is not supported"
|
||||
else
|
||||
[ "${ts:?}" = 'zts' ] && suffix='-zts'
|
||||
install_icu "$icu" >/dev/null 2>&1
|
||||
install_icu "$icu"
|
||||
get -q -n "${ext_dir:?}/intl.so" "https://github.com/shivammathur/icu-intl/releases/download/intl/php${version:?}-intl-$icu$suffix.so"
|
||||
enable_extension intl extension
|
||||
add_extension_log intl "Installed and enabled with ICU $icu"
|
||||
|
||||
@@ -10,12 +10,23 @@ add_ioncube() {
|
||||
status='Enabled'
|
||||
if ! shared_extension ioncube; then
|
||||
status='Installed and enabled'
|
||||
os_name='lin' && [ "$(uname -s)" = "Darwin" ] && os_name='mac'
|
||||
get -s -n "" https://downloads.ioncube.com/loader_downloads/ioncube_loaders_"$os_name"_x86-64.tar.gz | tar -xzf - -C /tmp
|
||||
sudo mv /tmp/ioncube/ioncube_loader_"$os_name"_"${version:?}".so "${ext_dir:?}/ioncube.so"
|
||||
sudo cp /tmp/ioncube/LICENSE.txt "$ext_dir"/IONCUBE_LICENSE.txt
|
||||
arch="$(uname -m)"
|
||||
if [ "$(uname -s)" = "Darwin" ]; then
|
||||
[ "$arch" = "arm64" ] && os_suffix="dar_arm64" || os_suffix="mac_x86-64"
|
||||
else
|
||||
[[ "$arch" = "i386" || "$arch" = "i686" ]] && arch=x86
|
||||
[[ "$arch" = "x86_64" ]] && arch=x86-64
|
||||
os_suffix="lin_$arch"
|
||||
fi
|
||||
ts_part="" && [ "${ts:?}" = "zts" ] && ts_part="_ts"
|
||||
get -s -n "" https://downloads.ioncube.com/loader_downloads/ioncube_loaders_"$os_suffix".tar.gz | tar -xzf - -C /tmp
|
||||
loader_file=/tmp/ioncube/ioncube_loader_"${os_suffix%%_*}_${version:?}$ts_part".so
|
||||
if [ -e "$loader_file" ]; then
|
||||
sudo mv /tmp/ioncube/ioncube_loader_"${os_suffix%%_*}_${version:?}$ts_part".so "${ext_dir:?}/ioncube.so"
|
||||
sudo cp /tmp/ioncube/LICENSE.txt "$ext_dir"/IONCUBE_LICENSE.txt
|
||||
echo "zend_extension=$ext_dir/ioncube.so" | sudo tee "${scan_dir:?}/00-ioncube.ini"
|
||||
fi
|
||||
fi
|
||||
echo "zend_extension=$ext_dir/ioncube.so" | sudo tee "${scan_dir:?}/00-ioncube.ini" >/dev/null 2>&1
|
||||
add_extension_log "ioncube" "$status"
|
||||
check_extension "ioncube" && add_license_log
|
||||
}
|
||||
|
||||
@@ -30,6 +30,10 @@ add_client() {
|
||||
sudo mv "$icdir"/* "$oracle_client"/
|
||||
done
|
||||
sudo ln -sf /opt/oracle/instantclient/*.$lib_ext* $libs
|
||||
if [ "$os" = "Linux" ]; then
|
||||
arch="$(uname -m)"
|
||||
[ -e "$libs/$arch"-linux-gnu/libaio.so.1t64 ] && sudo ln -sf "$libs/$arch"-linux-gnu/libaio.so.1t64 "$libs/$arch"-linux-gnu/libaio.so.1
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -59,8 +63,8 @@ add_oci() {
|
||||
oracle_home='/opt/oracle'
|
||||
oracle_client=$oracle_home/instantclient
|
||||
os=$(uname -s)
|
||||
add_client >/dev/null 2>&1
|
||||
add_oci_helper >/dev/null 2>&1
|
||||
add_client
|
||||
add_oci_helper
|
||||
add_extension_log "$ext" "$status"
|
||||
check_extension "$ext" && add_license_log
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
# Helper function to get phalcon version
|
||||
get_phalcon_version() {
|
||||
if [ "$extension" = "phalcon5" ]; then
|
||||
if [ "${version:?}" = "7.4" ]; then
|
||||
echo '5.4.0'
|
||||
else
|
||||
get_pecl_version phalcon stable 5
|
||||
fi
|
||||
elif [ "$extension" = "phalcon4" ]; then
|
||||
echo '4.1.2'
|
||||
elif [ "$extension" = "phalcon3" ]; then
|
||||
@@ -30,7 +34,7 @@ add_phalcon_helper() {
|
||||
add_brew_extension "$extension" extension
|
||||
else
|
||||
package="php${version:?}-$extension"
|
||||
add_ppa ondrej/php >/dev/null 2>&1 || update_ppa ondrej/php
|
||||
add_ppa ondrej/php || update_ppa ondrej/php
|
||||
[[ "$extension" =~ phalcon[4|5] ]] && (install_packages "php${version:?}-psr" || pecl_install psr || pecl_install psr-1.1.0)
|
||||
(check_package "$package" && install_packages "$package") || pecl_install phalcon-"$(get_phalcon_version)" || add_phalcon_from_repo
|
||||
fi
|
||||
@@ -90,7 +94,7 @@ add_phalcon() {
|
||||
[ "$extension" = "phalcon" ] && extension=phalcon5
|
||||
extension_major_version=${extension: -1}
|
||||
if [[ "$extension_major_version" =~ [3-5] ]]; then
|
||||
add_phalcon"$extension_major_version" >/dev/null 2>&1
|
||||
add_phalcon"$extension_major_version"
|
||||
fi
|
||||
add_extension_log "phalcon" "$status"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,11 @@
|
||||
get_relay_version() {
|
||||
local ext=$1
|
||||
if [[ "$ext" =~ ^relay$ ]]; then
|
||||
if [ "${version:?}" = "7.4" ]; then
|
||||
echo 'v0.7.0'
|
||||
else
|
||||
get -s -n "" "${relay_releases:?}"/latest 2<&1 | grep -m 1 -Eo "tag/(v[0-9]+(\.[0-9]+)?(\.[0-9]+)?)" | head -n 1 | cut -d '/' -f 2
|
||||
fi
|
||||
else
|
||||
relay_version="${ext##*-}"
|
||||
echo "v${relay_version/v//}"
|
||||
@@ -40,6 +44,7 @@ change_library_paths() {
|
||||
install_name_tool -change "$(echo "${dylibs}" | grep -E "liblz4.*dylib" | xargs)" "$brew_prefix"/opt/lz4/lib/liblz4.dylib "$ext_dir"/relay.so
|
||||
install_name_tool -change "$(echo "${dylibs}" | grep -E "libssl.*dylib" | xargs)" "$brew_prefix"/opt/openssl@"$openssl_version"/lib/libssl.dylib "$ext_dir"/relay.so
|
||||
install_name_tool -change "$(echo "${dylibs}" | grep -E "libcrypto.*dylib" | xargs)" "$brew_prefix"/opt/openssl@"$openssl_version"/lib/libcrypto.dylib "$ext_dir"/relay.so
|
||||
install_name_tool -change "$(echo "${dylibs}" | grep -E "libck.*dylib" | xargs)" "$brew_prefix"/opt/concurrencykit/lib/libck.dylib "$ext_dir"/relay.so
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -51,7 +56,7 @@ add_relay_dependencies() {
|
||||
if [ "$os" = "Darwin" ]; then
|
||||
. "${0%/*}"/tools/brew.sh
|
||||
configure_brew
|
||||
brew install hiredis lz4 zstd
|
||||
brew install hiredis lz4 zstd concurrencykit
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -92,8 +97,7 @@ enable_relay() {
|
||||
# Patch binary id in relay extension
|
||||
init_relay_binary_id() {
|
||||
if [ -e "${ext_dir:?}"/relay.so ]; then
|
||||
grep -aq 00000000 "${ext_dir:?}"/relay.so && \
|
||||
sudo LC_ALL=C sed -i.bak "s/00000000-0000-0000-0000-000000000000/$(uuidgen)/" "$ext_dir"/relay.so
|
||||
sudo LC_ALL=C sed -i.bak "s/00000000-0000-0000-0000-000000000000/$(uuidgen)/" "$ext_dir"/relay.so || true
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -134,13 +138,13 @@ add_relay() {
|
||||
relay_releases=https://github.com/cachewerk/relay/releases
|
||||
relay_trunk=https://builds.r2.relay.so
|
||||
relay_version=$(get_relay_version "$ext")
|
||||
add_relay_dependencies >/dev/null 2>&1
|
||||
add_relay_dependencies
|
||||
if shared_extension relay; then
|
||||
message="Enabled"
|
||||
else
|
||||
add_relay_helper >/dev/null 2>&1
|
||||
add_relay_helper
|
||||
message="Installed and enabled"
|
||||
fi
|
||||
configure_relay >/dev/null 2>&1
|
||||
configure_relay
|
||||
add_extension_log relay "$message"
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ check_lib() {
|
||||
add_linux_libs() {
|
||||
local lib=$1
|
||||
if ! check_lib "$lib"; then
|
||||
install_packages "$lib" >/dev/null 2>&1 || true
|
||||
install_packages "$lib" || true
|
||||
fi
|
||||
add_lib_log "$lib"
|
||||
}
|
||||
@@ -56,9 +56,9 @@ add_linux_libs() {
|
||||
add_darwin_libs() {
|
||||
local lib=$1
|
||||
if ! check_lib "$lib"; then
|
||||
brew install "$lib" >/dev/null 2>&1 || true
|
||||
brew install "$lib" || true
|
||||
if [[ "$lib" = *@* ]]; then
|
||||
brew link --overwrite --force "$lib" >/dev/null 2>&1 || true
|
||||
brew link --overwrite --force "$lib" || true
|
||||
fi
|
||||
fi
|
||||
add_lib_log "$lib"
|
||||
@@ -80,7 +80,7 @@ add_libs() {
|
||||
run_group() {
|
||||
local command=$1
|
||||
local log=$2
|
||||
echo "$command" | sudo tee ./run_group.sh >/dev/null 2>&1
|
||||
echo "$command" | sudo tee ./run_group.sh
|
||||
echo "$GROUP$log"
|
||||
. ./run_group.sh
|
||||
rm ./run_group.sh
|
||||
@@ -141,7 +141,7 @@ add_extension_from_source() {
|
||||
sub_dir="$(parse_args "$extension" PATH)"
|
||||
step_log "Setup $slug"
|
||||
(
|
||||
add_devtools phpize >/dev/null 2>&1
|
||||
add_devtools phpize
|
||||
disable_extension_helper "$extension"
|
||||
fetch_extension "$extension" "$fetch"
|
||||
if ! [ "$(find . -maxdepth 1 -name '*.m4' -exec grep -H 'PHP_NEW_EXTENSION' {} \; | wc -l)" != "0" ]; then
|
||||
@@ -149,7 +149,7 @@ add_extension_from_source() {
|
||||
else
|
||||
[[ -n "${libraries// }" ]] && run_group "add_libs $libraries" "add libraries"
|
||||
[ "${debug:?}" = "debug" ] && suffix_opts="$suffix_opts --enable-debug"
|
||||
patch_extension "$extension" >/dev/null 2>&1
|
||||
patch_extension "$extension"
|
||||
run_group "phpize" "phpize"
|
||||
run_group "sudo $prefix_opts ./configure $suffix_opts $opts" "configure"
|
||||
run_group "sudo make -j$(nproc 2>/dev/null || sysctl -n hw.ncpu)" "make"
|
||||
|
||||
@@ -29,7 +29,7 @@ Function Get-SqlsrvReleaseUrl()
|
||||
}
|
||||
|
||||
# Function to add sqlsrv extension from GitHub.
|
||||
Function Add-SqlsrvFromGithub()
|
||||
Function Add-SqlsrvFromMSGithub()
|
||||
{
|
||||
Param (
|
||||
[Parameter(Position = 0, Mandatory = $true)]
|
||||
@@ -37,6 +37,7 @@ Function Add-SqlsrvFromGithub()
|
||||
[string]
|
||||
$extension
|
||||
)
|
||||
try {
|
||||
$zipUrl = SqlsrvReleaseUrl
|
||||
if($zipUrl) {
|
||||
$nts = if (!$installed.ThreadSafe) { "nts" } else { "ts" }
|
||||
@@ -47,6 +48,7 @@ Function Add-SqlsrvFromGithub()
|
||||
Copy-Item -Path "$ENV:RUNNER_TOOL_CACHE\sqlsrv\$extensionFilePath" -Destination "$ext_dir\php_$extension.dll"
|
||||
Enable-PhpExtension -Extension $extension -Path $php_dir
|
||||
}
|
||||
} catch { }
|
||||
}
|
||||
|
||||
# Function to add sqlsrv extension.
|
||||
@@ -61,9 +63,14 @@ Function Add-Sqlsrv() {
|
||||
if (Test-Path $ext_dir\php_$extension.dll) {
|
||||
Enable-PhpExtension -Extension $extension -Path $php_dir
|
||||
} else {
|
||||
Add-SqlsrvFromGithub $extension >$null 2>&1
|
||||
try {
|
||||
Add-ExtensionFromGithub $extension > $null 2>&1
|
||||
} catch {}
|
||||
if (-not(Test-Extension $extension)) {
|
||||
Add-Extension $extension >$null 2>&1
|
||||
Add-SqlsrvFromMSGithub $extension
|
||||
}
|
||||
if (-not(Test-Extension $extension)) {
|
||||
Add-Extension $extension
|
||||
}
|
||||
$status = 'Installed and enabled'
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ add_zephir_parser() {
|
||||
zp_releases=https://github.com/"$repo"/releases
|
||||
if ! shared_extension zephir_parser; then
|
||||
message='Installed and enabled'
|
||||
add_zephir_parser_helper "$ext" >/dev/null 2>&1
|
||||
add_zephir_parser_helper "$ext"
|
||||
else
|
||||
message='Enabled'
|
||||
enable_extension zephir_parser extension
|
||||
|
||||
@@ -6,6 +6,14 @@ add_sudo() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to link apt-fast to apt-get
|
||||
link_apt_fast() {
|
||||
if ! command -v apt-fast >/dev/null; then
|
||||
sudo ln -sf /usr/bin/apt-get /usr/bin/apt-fast
|
||||
trap "sudo rm -f /usr/bin/apt-fast 2>/dev/null" exit
|
||||
fi
|
||||
}
|
||||
|
||||
# Function to setup environment for self-hosted runners.
|
||||
self_hosted_helper() {
|
||||
if ! command -v apt-fast >/dev/null; then
|
||||
@@ -17,13 +25,17 @@ self_hosted_helper() {
|
||||
|
||||
# Function to fix broken packages.
|
||||
fix_broken_packages() {
|
||||
sudo apt --fix-broken install >/dev/null 2>&1
|
||||
sudo apt --fix-broken install
|
||||
}
|
||||
|
||||
# Function to install a package
|
||||
install_packages() {
|
||||
packages=("$@")
|
||||
$apt_install "${packages[@]}" >/dev/null 2>&1 || (update_lists && fix_broken_packages && $apt_install "${packages[@]}" >/dev/null 2>&1)
|
||||
if ! [ -e /etc/dpkg/dpkg.cfg.d/force-confnew ]; then
|
||||
echo "force-confnew" | sudo tee /etc/dpkg/dpkg.cfg.d/force-confnew
|
||||
trap "sudo rm -f /etc/dpkg/dpkg.cfg.d/force-confnew 2>/dev/null" exit
|
||||
fi
|
||||
$apt_install "${packages[@]}" || (update_lists && fix_broken_packages && $apt_install "${packages[@]}" )
|
||||
}
|
||||
|
||||
# Function to disable an extension.
|
||||
@@ -35,10 +47,10 @@ disable_extension_helper() {
|
||||
disable_extension_dependents "$extension"
|
||||
fi
|
||||
sudo sed -Ei "/=(.*\/)?\"?$extension(.so)?\"?$/d" "${ini_file[@]}" "$pecl_file"
|
||||
sudo find "$ini_dir"/.. -name "*-$extension.ini" -not -path "*phar.ini" -not -path "*pecl.ini" -not -path "*mods-available*" -delete >/dev/null 2>&1 || true
|
||||
sudo find "$ini_dir"/.. -name "*-$extension.ini" -not -path "*phar.ini" -not -path "*pecl.ini" -not -path "*mods-available*" -delete || true
|
||||
sudo rm -f /tmp/php"$version"_extensions
|
||||
mkdir -p /tmp/extdisabled/"$version"
|
||||
echo '' | sudo tee /tmp/extdisabled/"$version"/"$extension" >/dev/null 2>&1
|
||||
echo '' | sudo tee /tmp/extdisabled/"$version"/"$extension"
|
||||
}
|
||||
|
||||
# Function to add PDO extension.
|
||||
@@ -51,7 +63,7 @@ add_pdo_extension() {
|
||||
ext_name=$1
|
||||
if shared_extension pdo; then
|
||||
disable_extension_helper pdo
|
||||
echo "extension=pdo.so" | sudo tee "${ini_file[@]/php.ini/conf.d/10-pdo.ini}" >/dev/null 2>&1
|
||||
echo "extension=pdo.so" | sudo tee "${ini_file[@]/php.ini/conf.d/10-pdo.ini}"
|
||||
fi
|
||||
if [ "$ext" = "mysql" ]; then
|
||||
enable_extension "mysqlnd" "extension"
|
||||
@@ -59,15 +71,15 @@ add_pdo_extension() {
|
||||
elif [ "$ext" = "dblib" ]; then
|
||||
ext_name="sybase"
|
||||
elif [ "$ext" = "firebird" ]; then
|
||||
install_packages libfbclient2 >/dev/null 2>&1
|
||||
install_packages libfbclient2
|
||||
enable_extension "pdo_firebird" "extension"
|
||||
ext_name="interbase"
|
||||
elif [ "$ext" = "sqlite" ]; then
|
||||
ext="sqlite3"
|
||||
ext_name="sqlite3"
|
||||
fi
|
||||
add_extension "$ext_name" "extension" >/dev/null 2>&1
|
||||
add_extension "$pdo_ext" "extension" >/dev/null 2>&1
|
||||
add_extension "$ext_name" "extension"
|
||||
add_extension "$pdo_ext" "extension"
|
||||
add_extension_log "$pdo_ext" "Enabled"
|
||||
fi
|
||||
}
|
||||
@@ -81,7 +93,7 @@ check_package() {
|
||||
add_extension_helper() {
|
||||
local extension=$1
|
||||
packages=(php"$version"-"$extension")
|
||||
add_ppa ondrej/php >/dev/null 2>&1 || update_ppa ondrej/php
|
||||
add_ppa ondrej/php || update_ppa ondrej/php
|
||||
[ "${debug:?}" = "debug" ] && check_package php"$version"-"$extension"-dbgsym && packages+=(php"$version"-"$extension"-dbgsym)
|
||||
(check_package "${packages[0]}" && install_packages "${packages[@]}") || pecl_install "$extension"
|
||||
add_extension_log "$extension" "Installed and enabled"
|
||||
@@ -95,7 +107,7 @@ add_devtools() {
|
||||
install_packages "php$version-dev"
|
||||
fi
|
||||
switch_version "phpize" "php-config"
|
||||
add_extension xml extension >/dev/null 2>&1
|
||||
add_extension xml extension
|
||||
add_log "${tick:?}" "$tool" "Added $tool $semver"
|
||||
}
|
||||
|
||||
@@ -116,11 +128,11 @@ setup_cached_versions() {
|
||||
|
||||
# Function to add PECL.
|
||||
add_pecl() {
|
||||
add_devtools phpize >/dev/null 2>&1
|
||||
add_devtools phpize
|
||||
if ! command -v pecl >/dev/null; then
|
||||
install_packages php-pear
|
||||
fi
|
||||
configure_pecl >/dev/null 2>&1
|
||||
configure_pecl
|
||||
pear_version=$(get_tool_version "pecl" "version")
|
||||
add_log "${tick:?}" "PECL" "Added PECL $pear_version"
|
||||
}
|
||||
@@ -154,7 +166,7 @@ get_php_packages() {
|
||||
|
||||
# Function to install packaged PHP
|
||||
add_packaged_php() {
|
||||
add_ppa ondrej/php >/dev/null 2>&1 || update_ppa ondrej/php
|
||||
add_ppa ondrej/php || update_ppa ondrej/php
|
||||
IFS=' ' read -r -a packages <<<"$(get_php_packages)"
|
||||
install_packages "${packages[@]}"
|
||||
}
|
||||
@@ -178,7 +190,7 @@ add_php() {
|
||||
setup_nightly
|
||||
else
|
||||
add_packaged_php
|
||||
switch_version >/dev/null 2>&1
|
||||
switch_version
|
||||
add_pecl
|
||||
fi
|
||||
elif [[ "$version" =~ ${old_versions:?} ]]; then
|
||||
@@ -191,7 +203,7 @@ add_php() {
|
||||
|
||||
# Function to ini file for pear and link it to each SAPI.
|
||||
link_pecl_file() {
|
||||
echo '' | sudo tee "$pecl_file" >/dev/null 2>&1
|
||||
echo '' | sudo tee "$pecl_file"
|
||||
for file in "${ini_file[@]}"; do
|
||||
sapi_scan_dir="$(realpath -m "$(dirname "$file")")/conf.d"
|
||||
if [ "$sapi_scan_dir" != "$scan_dir" ] && ! [ -h "$sapi_scan_dir" ]; then
|
||||
@@ -224,9 +236,9 @@ add_php_config() {
|
||||
elif [ "$ini" = "development" ]; then
|
||||
echo "${ini_file[@]}" | xargs -n 1 -P 6 sudo cp "$php_lib_dir"/php.ini-development
|
||||
elif [ "$ini" = "none" ]; then
|
||||
echo '' | sudo tee "${ini_file[@]}" >/dev/null 2>&1
|
||||
echo '' | sudo tee "${ini_file[@]}"
|
||||
fi
|
||||
echo "$ini" | sudo tee "$current_ini" >/dev/null 2>&1
|
||||
echo "$ini" | sudo tee "$current_ini"
|
||||
}
|
||||
|
||||
# Function to Setup PHP
|
||||
@@ -236,13 +248,13 @@ setup_php() {
|
||||
php_config="$(command -v php-config)"
|
||||
if [[ -z "$php_config" ]] || [ "$(php_semver | cut -c 1-3)" != "$version" ]; then
|
||||
if [ ! -e "/usr/bin/php$version" ] || [ ! -e "/usr/bin/php-config$version" ]; then
|
||||
add_php >/dev/null 2>&1
|
||||
add_php
|
||||
else
|
||||
if ! [[ "$version" =~ ${old_versions:?} ]]; then
|
||||
switch_version >/dev/null 2>&1
|
||||
switch_version
|
||||
fi
|
||||
if [ "${update:?}" = "true" ]; then
|
||||
update_php >/dev/null 2>&1
|
||||
update_php
|
||||
else
|
||||
status="Switched to"
|
||||
fi
|
||||
@@ -250,7 +262,7 @@ setup_php() {
|
||||
php_config="$(command -v php-config)"
|
||||
else
|
||||
if [ "$update" = "true" ]; then
|
||||
update_php >/dev/null 2>&1
|
||||
update_php
|
||||
else
|
||||
status="Found"
|
||||
fi
|
||||
@@ -270,7 +282,7 @@ setup_php() {
|
||||
link_pecl_file
|
||||
configure_php
|
||||
set_output "php-version" "$semver"
|
||||
sudo rm -rf /usr/local/bin/phpunit >/dev/null 2>&1
|
||||
sudo rm -rf /usr/local/bin/phpunit
|
||||
sudo chmod 777 "${ini_file[@]}" "$pecl_file" "${tool_path_dir:?}"
|
||||
sudo cp "$src"/configs/pm/*.json "$RUNNER_TOOL_CACHE/"
|
||||
add_log "${tick:?}" "PHP" "$status PHP $semver$extra_version"
|
||||
@@ -284,7 +296,8 @@ debconf_fix="DEBIAN_FRONTEND=noninteractive"
|
||||
apt_install="sudo $debconf_fix apt-fast install -y --no-install-recommends"
|
||||
scripts="$src"/scripts
|
||||
|
||||
add_sudo >/dev/null 2>&1
|
||||
add_sudo
|
||||
link_apt_fast
|
||||
|
||||
. /etc/os-release
|
||||
# shellcheck source=.
|
||||
|
||||
@@ -121,7 +121,7 @@ Function Add-ToolsHelper() {
|
||||
$extensions += @('json', 'tokenizer')
|
||||
} elseif($tool -eq "phpDocumentor") {
|
||||
$extensions+=('ctype', 'hash', 'json', 'fileinfo', 'iconv', 'mbstring', 'simplexml', 'xml')
|
||||
Add-Extension fileinfo >$null 2>&1
|
||||
Add-Extension fileinfo
|
||||
Copy-Item $bin_dir\phpDocumentor.bat -Destination $bin_dir\phpdoc.bat
|
||||
} elseif($tool -eq "phpunit") {
|
||||
$extensions += @('dom', 'json', 'libxml', 'mbstring', 'xml', 'xmlwriter')
|
||||
@@ -134,7 +134,7 @@ Function Add-ToolsHelper() {
|
||||
Copy-Item $bin_dir\wp-cli.bat -Destination $bin_dir\wp.bat
|
||||
}
|
||||
foreach($extension in $extensions) {
|
||||
Add-Extension $extension >$null 2>&1
|
||||
Add-Extension $extension
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ Function Add-Tool() {
|
||||
$bat_content += "php %BIN_TARGET% %*"
|
||||
Set-Content -Path $bin_dir\$tool.bat -Value $bat_content
|
||||
Add-ToolsHelper $tool
|
||||
Add-ToProfile $current_profile $tool "New-Alias $tool $bin_dir\$tool.bat" >$null 2>&1
|
||||
Add-ToProfile $current_profile $tool "New-Alias $tool $bin_dir\$tool.bat"
|
||||
$tool_version = Get-ToolVersion $tool $ver_param
|
||||
Add-Log $tick $tool "Added $tool $tool_version"
|
||||
} else {
|
||||
@@ -221,9 +221,9 @@ Function Add-ComposerToolHelper() {
|
||||
Remove-Item -Path $composer_lock -Force
|
||||
}
|
||||
if((composer global show $prefix$tool $tool_version -a 2>&1 | findstr '^type *: *composer-plugin') -and ($composer_args -ne '')) {
|
||||
composer global config --no-plugins allow-plugins."$prefix$tool" true >$null 2>&1
|
||||
composer global config --no-plugins allow-plugins."$prefix$tool" true
|
||||
}
|
||||
composer global require $prefix$release $composer_args >$null 2>&1
|
||||
composer global require $prefix$release $composer_args
|
||||
return composer global show $prefix$tool 2>&1 | findstr '^versions'
|
||||
} else {
|
||||
$release_stream = [System.IO.MemoryStream]::New([System.Text.Encoding]::ASCII.GetBytes($release))
|
||||
@@ -234,9 +234,9 @@ Function Add-ComposerToolHelper() {
|
||||
New-Item -ItemType Directory -Force -Path $scoped_dir > $null 2>&1
|
||||
Set-Content -Path $scoped_dir\composer.json -Value "{}"
|
||||
if((composer show $prefix$tool $tool_version -d $unix_scoped_dir -a 2>&1 | findstr '^type *: *composer-plugin') -and ($composer_args -ne '')) {
|
||||
composer config -d $unix_scoped_dir --no-plugins allow-plugins."$prefix$tool" true >$null 2>&1
|
||||
composer config -d $unix_scoped_dir --no-plugins allow-plugins."$prefix$tool" true
|
||||
}
|
||||
composer require $prefix$release -d $unix_scoped_dir $composer_args >$null 2>&1
|
||||
composer require $prefix$release -d $unix_scoped_dir $composer_args
|
||||
}
|
||||
[System.Environment]::SetEnvironmentVariable(($tool.replace('-', '_') + '_bin'), "$scoped_dir\vendor\bin")
|
||||
Add-Path $scoped_dir\vendor\bin
|
||||
|
||||
@@ -132,7 +132,7 @@ add_tools_helper() {
|
||||
sudo ln -s "$tool_path" "$tool_path_dir"/"${tool%-*}"
|
||||
fi
|
||||
for extension in "${extensions[@]}"; do
|
||||
add_extension "$extension" extension >/dev/null 2>&1
|
||||
add_extension "$extension" extension
|
||||
done
|
||||
}
|
||||
|
||||
@@ -179,22 +179,22 @@ add_composer_tool_helper() {
|
||||
enable_extensions curl mbstring openssl
|
||||
tool_version=${release##*:}; [ "$tool_version" = "$tool" ] && tool_version="*"
|
||||
if [ "$scope" = "global" ]; then
|
||||
sudo rm -f "$composer_lock" >/dev/null 2>&1 || true
|
||||
sudo rm -f "$composer_lock" || true
|
||||
if composer global show "$prefix$tool" "$tool_version" -a 2>&1 | grep -qE '^type *: *composer-plugin' && [ -n "$composer_args" ]; then
|
||||
composer global config --no-plugins allow-plugins."$prefix$tool" true >/dev/null 2>&1
|
||||
composer global config --no-plugins allow-plugins."$prefix$tool" true
|
||||
fi
|
||||
composer global require "$prefix$release" "$composer_args" >/dev/null 2>&1
|
||||
composer global show "$prefix$tool" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log >/dev/null 2>&1
|
||||
composer global require "$prefix$release" "$composer_args"
|
||||
composer global show "$prefix$tool" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log
|
||||
else
|
||||
scoped_dir="$composer_bin/_tools/$tool-$(echo -n "$release" | shasum -a 256 | cut -d ' ' -f 1)"
|
||||
if ! [ -d "$scoped_dir" ]; then
|
||||
mkdir -p "$scoped_dir"
|
||||
echo '{}' | tee "$scoped_dir/composer.json" >/dev/null
|
||||
if composer show "$prefix$tool" "$tool_version" -d "$scoped_dir" -a 2>&1 | grep -qE '^type *: *composer-plugin' && [ -n "$composer_args" ]; then
|
||||
composer config -d "$scoped_dir" --no-plugins allow-plugins."$prefix$tool" true >/dev/null 2>&1
|
||||
composer config -d "$scoped_dir" --no-plugins allow-plugins."$prefix$tool" true
|
||||
fi
|
||||
composer require "$prefix$release" -d "$scoped_dir" "$composer_args" >/dev/null 2>&1
|
||||
composer show "$prefix$tool" -d "$scoped_dir" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log >/dev/null 2>&1
|
||||
composer require "$prefix$release" -d "$scoped_dir" "$composer_args"
|
||||
composer show "$prefix$tool" -d "$scoped_dir" 2>&1 | grep -E ^versions | sudo tee /tmp/composer.log
|
||||
fi
|
||||
add_path "$scoped_dir"/vendor/bin
|
||||
fi
|
||||
|
||||
@@ -6,14 +6,14 @@ Function Add-Blackfire() {
|
||||
}
|
||||
$cli_version = (Invoke-RestMethod https://blackfire.io/api/v1/releases).cli
|
||||
$url = "https://packages.blackfire.io/binaries/blackfire/${cli_version}/blackfire-windows_${arch_name}.zip"
|
||||
Get-File -Url $url -OutFile $bin_dir\blackfire.zip >$null 2>&1
|
||||
Expand-Archive -Path $bin_dir\blackfire.zip -DestinationPath $bin_dir -Force >$null 2>&1
|
||||
Get-File -Url $url -OutFile $bin_dir\blackfire.zip
|
||||
Expand-Archive -Path $bin_dir\blackfire.zip -DestinationPath $bin_dir -Force
|
||||
Add-ToProfile $current_profile 'blackfire' "New-Alias blackfire $bin_dir\blackfire.exe"
|
||||
if ((Test-Path env:BLACKFIRE_SERVER_ID) -and (Test-Path env:BLACKFIRE_SERVER_TOKEN)) {
|
||||
blackfire agent:config --server-id=$env:BLACKFIRE_SERVER_ID --server-token=$env:BLACKFIRE_SERVER_TOKEN >$null 2>&1
|
||||
blackfire agent:config --server-id=$env:BLACKFIRE_SERVER_ID --server-token=$env:BLACKFIRE_SERVER_TOKEN
|
||||
}
|
||||
if ((Test-Path env:BLACKFIRE_CLIENT_ID) -and (Test-Path env:BLACKFIRE_CLIENT_TOKEN)) {
|
||||
blackfire client:config --client-id=$env:BLACKFIRE_CLIENT_ID --client-token=$env:BLACKFIRE_CLIENT_TOKEN --ca-cert=$php_dir\ssl\cacert.pem >$null 2>&1
|
||||
blackfire client:config --client-id=$env:BLACKFIRE_CLIENT_ID --client-token=$env:BLACKFIRE_CLIENT_TOKEN --ca-cert=$php_dir\ssl\cacert.pem
|
||||
}
|
||||
Add-Log $tick "blackfire" "Added blackfire $cli_version"
|
||||
}
|
||||
|
||||
@@ -32,9 +32,9 @@ blackfire_config() {
|
||||
# Function to add blackfire cli.
|
||||
add_blackfire() {
|
||||
os="$(uname -s)"
|
||||
[ "$os" = "Linux" ] && add_blackfire_linux >/dev/null 2>&1
|
||||
[ "$os" = "Darwin" ] && add_blackfire_darwin >/dev/null 2>&1
|
||||
blackfire_config >/dev/null 2>&1
|
||||
[ "$os" = "Linux" ] && add_blackfire_linux
|
||||
[ "$os" = "Darwin" ] && add_blackfire_darwin
|
||||
blackfire_config
|
||||
tool_version=$(get_tool_version "blackfire" "version")
|
||||
add_log "${tick:?}" "blackfire" "Added blackfire $tool_version"
|
||||
}
|
||||
|
||||
@@ -14,11 +14,11 @@ add_brew_tap() {
|
||||
tap=$1
|
||||
if ! [ -d "$tap_dir/$tap" ]; then
|
||||
if [ "${runner:?}" = "self-hosted" ]; then
|
||||
brew tap "$tap" >/dev/null 2>&1
|
||||
brew tap "$tap"
|
||||
else
|
||||
fetch_brew_tap "$tap" >/dev/null 2>&1
|
||||
fetch_brew_tap "$tap"
|
||||
if ! [ -d "$tap_dir/$tap" ]; then
|
||||
brew tap "$tap" >/dev/null 2>&1
|
||||
brew tap "$tap"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -49,7 +49,7 @@ add_brew() {
|
||||
brew_prefix="$(get_brew_prefix)"
|
||||
if ! [ -d "$brew_prefix"/bin ]; then
|
||||
step_log "Setup Brew"
|
||||
get -s "" "/tmp/install.sh" "https://raw.githubusercontent.com/Homebrew/install/master/install.sh" | bash -s >/dev/null 2>&1
|
||||
get -s "" "/tmp/install.sh" "https://raw.githubusercontent.com/Homebrew/install/master/install.sh" | bash -s
|
||||
add_log "${tick:?}" "Brew" "Installed Homebrew"
|
||||
fi
|
||||
add_brew_bins_to_path "$brew_prefix"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Function Add-Msys2() {
|
||||
$msys_location = 'C:\msys64'
|
||||
if (-not(Test-Path $msys_location)) {
|
||||
choco install msys2 -y >$null 2>&1
|
||||
choco install msys2 -y
|
||||
$msys_location = 'C:\tools\msys64'
|
||||
}
|
||||
return $msys_location
|
||||
@@ -9,7 +9,7 @@ Function Add-Msys2() {
|
||||
|
||||
Function Add-GrpcPhpPlugin() {
|
||||
$msys_location = Add-Msys2
|
||||
$logs = . $msys_location\usr\bin\bash -l -c "pacman -S --noconfirm mingw-w64-x86_64-grpc" >$null 2>&1
|
||||
$logs = . $msys_location\usr\bin\bash -l -c "pacman -S --noconfirm mingw-w64-x86_64-grpc"
|
||||
$grpc_version = Get-ToolVersion 'Write-Output' "$logs"
|
||||
Add-Path $msys_location\mingw64\bin
|
||||
Set-Output grpc_php_plugin_path "$msys_location\mingw64\bin\grpc_php_plugin.exe"
|
||||
|
||||
@@ -26,7 +26,7 @@ add_grpc_php_plugin_brew() {
|
||||
configure_brew
|
||||
[ -e /usr/local/bin/protoc ] && sudo mv /usr/local/bin/protoc /tmp/protoc && sudo mv /usr/local/include/google /tmp
|
||||
brew install grpc
|
||||
brew link --force --overwrite grpc >/dev/null 2>&1
|
||||
brew link --force --overwrite grpc
|
||||
[ -e /tmp/protoc ] && sudo mv /tmp/protoc /usr/local/bin/protoc && sudo mv /tmp/google /usr/local/include/
|
||||
grpc_tag="v$(brew info grpc | grep "grpc:" | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+")"
|
||||
license_path="$(brew --prefix grpc)/LICENSE"
|
||||
@@ -50,9 +50,9 @@ add_grpc_php_plugin() {
|
||||
grpc_tag=$1
|
||||
license_path=""
|
||||
if [ "$grpc_tag" = "latest" ]; then
|
||||
add_grpc_php_plugin_brew >/dev/null 2>&1
|
||||
add_grpc_php_plugin_brew
|
||||
else
|
||||
add_grpc_php_plugin_compile >/dev/null 2>&1
|
||||
add_grpc_php_plugin_compile
|
||||
fi
|
||||
set_output grpc_php_plugin_path "$(command -v grpc_php_plugin)"
|
||||
add_log "${tick:?}" "grpc_php_plugin" "Added grpc_php_plugin ${grpc_tag:1}"
|
||||
|
||||
@@ -31,7 +31,7 @@ set_base_version() {
|
||||
else
|
||||
set_base_version_codename
|
||||
set_base_version_id
|
||||
printf "ID=%s\nVERSION_ID=%s\nVERSION_CODENAME=%s\n" "$ID" "$VERSION_ID" "$VERSION_CODENAME" | tee /tmp/os-release >/dev/null 2>&1
|
||||
printf "ID=%s\nVERSION_ID=%s\nVERSION_CODENAME=%s\n" "$ID" "$VERSION_ID" "$VERSION_CODENAME" | tee /tmp/os-release
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -55,12 +55,12 @@ update_lists() {
|
||||
if [[ -n "$ppa" && -n "$ppa_search" ]]; then
|
||||
list="$list_dir"/"$(basename "$(grep -lr "$ppa_search" "$list_dir")")"
|
||||
status_file=/tmp/"${ppa/\//_}"
|
||||
elif [ -e "$list_file" ] && grep -Eq '^deb ' "$list_file"; then
|
||||
elif [ -e "$list_file" ] && grep -Eq '^deb |^Types deb' "$list_file"; then
|
||||
list="$list_file"
|
||||
fi
|
||||
if [ ! -e "$status_file" ]; then
|
||||
update_lists_helper "$list" >/dev/null 2>&1
|
||||
echo '' | tee "$status_file" >/dev/null 2>&1
|
||||
update_lists_helper "$list"
|
||||
echo '' | tee "$status_file"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -88,14 +88,14 @@ add_key() {
|
||||
key_source=$4
|
||||
key_file=$5
|
||||
key_urls=("$key_source")
|
||||
if [[ "$key_source" =~ launchpad.net|debian.org|setup-php.com ]]; then
|
||||
if [[ "$key_source" =~ launchpad.net|debian.org ]]; then
|
||||
fingerprint="$("${ID}"_fingerprint "$ppa" "$ppa_url" "$package_dist")"
|
||||
sks_params="op=get&options=mr&exact=on&search=0x$fingerprint"
|
||||
key_urls=("${sks[@]/%/\/pks\/lookup\?"$sks_params"}")
|
||||
fi
|
||||
[ ! -e "$key_source" ] && get -q -n "$key_file" "${key_urls[@]}"
|
||||
if [[ "$(file "$key_file")" =~ .*('Public-Key (old)'|'Secret-Key') ]]; then
|
||||
sudo gpg --batch --yes --dearmor "$key_file" >/dev/null 2>&1 && sudo mv "$key_file".gpg "$key_file"
|
||||
sudo gpg --batch --yes --dearmor "$key_file" && sudo mv "$key_file".gpg "$key_file"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ add_list() {
|
||||
arch=$(dpkg --print-architecture)
|
||||
[ -e "$key_source" ] && key_file=$key_source || key_file="$key_dir"/"${ppa/\//-}"-keyring.gpg
|
||||
add_key "$ppa" "$ppa_url" "$package_dist" "$key_source" "$key_file"
|
||||
echo "deb [arch=$arch signed-by=$key_file] $ppa_url $package_dist $branches" | sudo tee -a "$list_dir"/"${ppa/\//-}".list >/dev/null 2>&1
|
||||
echo "deb [arch=$arch signed-by=$key_file] $ppa_url $package_dist $branches" | sudo tee -a "$list_dir"/"${ppa/\//-}".list
|
||||
update_lists "$ppa" "$ppa_search"
|
||||
. /etc/os-release
|
||||
fi
|
||||
@@ -153,18 +153,39 @@ check_ppa() {
|
||||
# Function to remove a PPA.
|
||||
remove_list() {
|
||||
ppa=${1-ondrej/php}
|
||||
ppa_url=${2:-"$lp_ppa/$ppa/ubuntu"}
|
||||
[ -n "$2" ] && ppa_urls=("$2") || ppa_urls=("$lp_ppa/$ppa/ubuntu" "$lpc_ppa/$ppa/ubuntu")
|
||||
for ppa_url in "${ppa_urls[@]}"; do
|
||||
grep -lr "$ppa_url" "$list_dir" | xargs -n1 sudo rm -f
|
||||
done
|
||||
sudo rm -f "$key_dir"/"${ppa/\//-}"-keyring || true
|
||||
}
|
||||
|
||||
# Function to check if ubuntu ppa is up
|
||||
is_ubuntu_ppa_up() {
|
||||
ppa=${1:-ondrej/php}
|
||||
curl -s --connect-timeout 5 --max-time 5 --head --fail "$lp_ppa/$ppa/ubuntu/dists/$VERSION_CODENAME/Release" > /dev/null
|
||||
}
|
||||
|
||||
# Function to add the PPA mirror.
|
||||
add_ppa_sp_mirror() {
|
||||
ppa=$1
|
||||
ppa_name="$(basename "$ppa")"
|
||||
remove_list "$ppa" || true
|
||||
[ "${debug:?}" = "debug" ] && add_list sp/"$ppa_name" "$sp/$ppa/ubuntu" "$sp/$ppa/ubuntu/key.gpg" "$VERSION_CODENAME" "main/debug"
|
||||
add_list sp/"$ppa_name" "$sp/$ppa/ubuntu" "$sp/$ppa/ubuntu/key.gpg"
|
||||
}
|
||||
|
||||
# Function to add a PPA.
|
||||
add_ppa() {
|
||||
set_base_version
|
||||
ppa=${1:-ondrej/php}
|
||||
if [[ "$ID" = "ubuntu" || "$ID_LIKE" =~ ubuntu ]] && [[ "$ppa" =~ "ondrej/" ]]; then
|
||||
if is_ubuntu_ppa_up "$ppa" ; then
|
||||
[ "${debug:?}" = "debug" ] && add_list "$ppa" "$lp_ppa/$ppa/ubuntu" "$lp_ppa/$ppa/ubuntu" "$VERSION_CODENAME" "main/debug"
|
||||
add_list "$ppa"
|
||||
else
|
||||
add_ppa_sp_mirror "$ppa"
|
||||
fi
|
||||
elif [[ "$ID" = "debian" || "$ID_LIKE" =~ debian ]] && [[ "$ppa" =~ "ondrej/" ]]; then
|
||||
[ "${debug:?}" = "debug" ] && add_list "$ppa" "$sury"/"${ppa##*/}"/ "$sury"/"${ppa##*/}"/apt.gpg "$VERSION_CODENAME" "main/debug"
|
||||
add_list "$ppa" "$sury"/"${ppa##*/}"/ "$sury"/"${ppa##*/}"/apt.gpg
|
||||
@@ -189,14 +210,17 @@ update_ppa() {
|
||||
}
|
||||
|
||||
# Variables
|
||||
list_file='/etc/apt/sources.list'
|
||||
list_dir="$list_file.d"
|
||||
list_dir='/etc/apt/sources.list.d'
|
||||
list_file="/etc/apt/sources.list.d/$ID.sources"
|
||||
[ -e "$list_file" ] || list_file='/etc/apt/sources.list'
|
||||
upstream_lsb='/etc/upstream-release/lsb-release'
|
||||
lp_api='https://api.launchpad.net/1.0'
|
||||
lp_ppa='http://ppa.launchpad.net'
|
||||
lpc_ppa='https://ppa.launchpadcontent.net'
|
||||
key_dir='/usr/share/keyrings'
|
||||
dist_info_dir='/usr/share/distro-info'
|
||||
sury='https://packages.sury.org'
|
||||
sp='https://setup-php.com'
|
||||
sks=(
|
||||
'https://keyserver.ubuntu.com'
|
||||
'https://pgp.mit.edu'
|
||||
|
||||
@@ -29,8 +29,8 @@ Function Add-Protoc() {
|
||||
$arch_num = '32'
|
||||
}
|
||||
$url = "https://github.com/protocolbuffers/protobuf/releases/download/$protobuf_tag/protoc-$($protobuf_tag -replace 'v', '')-win$arch_num.zip"
|
||||
Get-File -Url $url -OutFile $bin_dir\protoc.zip >$null 2>&1
|
||||
Expand-Archive -Path $bin_dir\protoc.zip -DestinationPath $bin_dir\protoc -Force >$null 2>&1
|
||||
Get-File -Url $url -OutFile $bin_dir\protoc.zip
|
||||
Expand-Archive -Path $bin_dir\protoc.zip -DestinationPath $bin_dir\protoc -Force
|
||||
Move-Item -Path $bin_dir\protoc\bin\protoc.exe -Destination $bin_dir\protoc.exe
|
||||
Add-ToProfile $current_profile 'protoc' "New-Alias protoc $bin_dir\protoc.exe"
|
||||
Add-Log $tick "protoc" "Added protoc $($protobuf_tag -replace 'v', '')"
|
||||
|
||||
@@ -20,7 +20,7 @@ add_protoc() {
|
||||
get -q -n /tmp/protobuf.zip "https://github.com/protocolbuffers/protobuf/releases/download/$protobuf_tag/protoc-${protobuf_tag:1}-$platform-x86_64.zip"
|
||||
sudo unzip /tmp/protobuf.zip -d /usr/local/
|
||||
sudo chmod -R 777 /usr/local/bin/protoc /usr/local/include/google
|
||||
) >/dev/null 2>&1
|
||||
)
|
||||
add_log "${tick:?}" "protoc" "Added protoc ${protobuf_tag:1}"
|
||||
printf "$GROUP\033[34;1m%s \033[0m\033[90;1m%s \033[0m\n" "protoc" "Click to read the protoc related license information"
|
||||
curl "${curl_opts[@]:?}" https://raw.githubusercontent.com/protocolbuffers/protobuf/master/LICENSE
|
||||
|
||||
@@ -4,8 +4,8 @@ Function Add-Symfony() {
|
||||
$arch_name = '386'
|
||||
}
|
||||
$url = "https://github.com/symfony-cli/symfony-cli/releases/latest/download/symfony-cli_windows_${arch_name}.zip"
|
||||
Get-File -Url $url -OutFile $bin_dir\symfony.zip >$null 2>&1
|
||||
Expand-Archive -Path $bin_dir\symfony.zip -DestinationPath $bin_dir -Force >$null 2>&1
|
||||
Get-File -Url $url -OutFile $bin_dir\symfony.zip
|
||||
Expand-Archive -Path $bin_dir\symfony.zip -DestinationPath $bin_dir -Force
|
||||
if(Test-Path $bin_dir\symfony.exe) {
|
||||
Copy-Item -Path $bin_dir\symfony.exe -Destination $bin_dir\symfony-cli.exe > $null 2>&1
|
||||
Add-ToProfile $current_profile 'symfony' "New-Alias symfony $bin_dir\symfony.exe"
|
||||
|
||||
@@ -29,7 +29,7 @@ add_symfony_helper() {
|
||||
}
|
||||
|
||||
add_symfony() {
|
||||
add_symfony_helper >/dev/null 2>&1
|
||||
add_symfony_helper
|
||||
symfony_path="$(command -v symfony)"
|
||||
if [[ -n "$symfony_path" ]]; then
|
||||
sudo ln -s "$symfony_path" "${tool_path_dir:?}"/symfony-cli
|
||||
|
||||
@@ -43,7 +43,7 @@ set_output() {
|
||||
name=$1
|
||||
value=$2
|
||||
if [ "${GITHUB_ACTIONS}" = "true" ]; then
|
||||
echo "${name}=${value}" | tee -a "$GITHUB_OUTPUT" >/dev/null 2>&1
|
||||
echo "${name}=${value}" | tee -a "$GITHUB_OUTPUT"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -113,10 +113,10 @@ add_path() {
|
||||
path_to_add=$1
|
||||
[[ ":$PATH:" == *":$path_to_add:"* ]] && return
|
||||
if [[ -n "$GITHUB_PATH" ]]; then
|
||||
echo "$path_to_add" | tee -a "$GITHUB_PATH" >/dev/null 2>&1
|
||||
echo "$path_to_add" | tee -a "$GITHUB_PATH"
|
||||
else
|
||||
profile=$(get_shell_profile)
|
||||
([ -e "$profile" ] && grep -q ":$path_to_add\"" "$profile" 2>/dev/null) || echo "export PATH=\"\${PATH:+\${PATH}:}\"$path_to_add" | sudo tee -a "$profile" >/dev/null 2>&1
|
||||
([ -e "$profile" ] && grep -q ":$path_to_add\"" "$profile" 2>/dev/null) || echo "export PATH=\"\${PATH:+\${PATH}:}\"$path_to_add" | sudo tee -a "$profile"
|
||||
fi
|
||||
export PATH="${PATH:+${PATH}:}$path_to_add"
|
||||
}
|
||||
@@ -138,10 +138,10 @@ add_env() {
|
||||
env_name=$1
|
||||
env_value=$2
|
||||
if [[ -n "$GITHUB_ENV" ]]; then
|
||||
echo "$env_name=$env_value" | tee -a "$GITHUB_ENV" >/dev/null 2>&1
|
||||
echo "$env_name=$env_value" | tee -a "$GITHUB_ENV"
|
||||
else
|
||||
profile=$(get_shell_profile)
|
||||
echo "export $env_name=\"$env_value\"" | sudo tee -a "$profile" >/dev/null 2>&1
|
||||
echo "export $env_name=\"$env_value\"" | sudo tee -a "$profile"
|
||||
fi
|
||||
export "$env_name"="$env_value"
|
||||
}
|
||||
@@ -162,7 +162,7 @@ self_hosted_setup() {
|
||||
add_log "$cross" "PHP" "PHP $version is not supported on self-hosted runner"
|
||||
exit 1
|
||||
else
|
||||
self_hosted_helper >/dev/null 2>&1
|
||||
self_hosted_helper
|
||||
add_env RUNNER_TOOL_CACHE /tmp
|
||||
fi
|
||||
fi
|
||||
@@ -175,8 +175,8 @@ configure_php() {
|
||||
ini_config_files=("$ini_config_dir"/php.ini)
|
||||
jit_config_files=("$ini_config_dir"/jit.ini)
|
||||
[[ "$version" =~ $xdebug3_versions ]] && ini_config_files+=("$ini_config_dir"/xdebug.ini)
|
||||
cat "${ini_config_files[@]}" | sudo tee -a "${ini_file[@]:?}" >/dev/null 2>&1
|
||||
[[ "$version" =~ $jit_versions ]] && cat "${jit_config_files[@]}" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null 2>&1
|
||||
cat "${ini_config_files[@]}" | sudo tee -a "${ini_file[@]:?}"
|
||||
[[ "$version" =~ $jit_versions ]] && cat "${jit_config_files[@]}" | sudo tee -a "${pecl_file:-${ini_file[@]}}"
|
||||
}
|
||||
|
||||
# Function to get PHP version in semver format.
|
||||
|
||||
@@ -355,7 +355,7 @@ if(-not($env:ImageOS) -and -not($env:ImageVersion)) {
|
||||
$bin_dir = 'C:\tools\bin'
|
||||
$php_dir = "$php_dir$version"
|
||||
$ext_dir = "$php_dir\ext"
|
||||
Get-CleanPSProfile >$null 2>&1
|
||||
Get-CleanPSProfile
|
||||
New-Item $bin_dir -Type Directory -Force > $null 2>&1
|
||||
Add-Path -PathItem $bin_dir
|
||||
if($version -lt 5.6) {
|
||||
@@ -368,12 +368,12 @@ if(-not($env:ImageOS) -and -not($env:ImageVersion)) {
|
||||
}
|
||||
New-Item $php_dir -Type Directory -Force > $null 2>&1
|
||||
Add-Path -PathItem $php_dir
|
||||
setx PHPROOT $php_dir >$null 2>&1
|
||||
setx PHPROOT $php_dir
|
||||
Add-Env -EnvName RUNNER_TOOL_CACHE -EnvValue $env:TEMP
|
||||
} else {
|
||||
$current_profile = "$PSHOME\Profile.ps1"
|
||||
if(-not(Test-Path -LiteralPath $current_profile)) {
|
||||
New-Item -Path $current_profile -ItemType "file" -Force >$null 2>&1
|
||||
New-Item -Path $current_profile -ItemType "file" -Force
|
||||
}
|
||||
}
|
||||
|
||||
@@ -381,9 +381,9 @@ $src = Join-Path -Path $PSScriptRoot -ChildPath \..
|
||||
. $src\scripts\tools\add_tools.ps1
|
||||
. $src\scripts\extensions\add_extensions.ps1
|
||||
|
||||
Add-Printf >$null 2>&1
|
||||
Add-Printf
|
||||
Step-Log "Setup PhpManager"
|
||||
Install-PSPackage PhpManager PhpManager\PhpManager "$github/mlocati/powershell-phpmanager/releases/latest/download/PhpManager.zip" Get-Php >$null 2>&1
|
||||
Install-PSPackage PhpManager PhpManager\PhpManager "$github/mlocati/powershell-phpmanager/releases/latest/download/PhpManager.zip" Get-Php
|
||||
Add-Log $tick "PhpManager" "Installed"
|
||||
|
||||
Step-Log "Setup PHP"
|
||||
@@ -403,7 +403,7 @@ $status = "Installed"
|
||||
$extra_version = ""
|
||||
if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version -replace '^(\d+(\.\d+)*).*', '$1.'))) -or $ts -ne $installed.ThreadSafe) {
|
||||
if ($version -lt '7.0' -and ($null -eq (Get-Module -ListAvailable -Name VcRedist))) {
|
||||
Install-PSPackage VcRedist VcRedist-main\VcRedist\VcRedist "$github/aaronparker/VcRedist/archive/main.zip" Get-VcList >$null 2>&1
|
||||
Install-PSPackage VcRedist VcRedist-main\VcRedist\VcRedist "$github/aaronparker/VcRedist/archive/main.zip" Get-VcList
|
||||
}
|
||||
try {
|
||||
if ($version -match $nightly_versions) {
|
||||
@@ -416,7 +416,7 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
|
||||
} catch { }
|
||||
} else {
|
||||
if($env:update -eq 'true') {
|
||||
Update-Php $php_dir >$null 2>&1
|
||||
Update-Php $php_dir
|
||||
$status = "Updated to"
|
||||
} else {
|
||||
$status = "Found"
|
||||
@@ -434,7 +434,7 @@ if($installed.MajorMinorVersion -ne $version) {
|
||||
Write-Error "Could not setup PHP $version" -ErrorAction Stop
|
||||
}
|
||||
if($version -lt "5.5") {
|
||||
('libeay32.dll', 'ssleay32.dll') | ForEach-Object -Parallel { Get-File -Url "$using:php_builder/releases/download/openssl-1.0.2u/$_" -OutFile $using:php_dir\$_ >$null 2>&1 }
|
||||
('libeay32.dll', 'ssleay32.dll') | ForEach-Object -Parallel { Get-File -Url "$using:php_builder/releases/download/openssl-1.0.2u/$_" -OutFile $using:php_dir\$_ }
|
||||
} else {
|
||||
$enable_extensions += ('opcache')
|
||||
}
|
||||
|
||||
@@ -278,10 +278,10 @@ export async function getExtensionPrefix(extension: string): Promise<string> {
|
||||
export async function suppressOutput(os: string): Promise<string> {
|
||||
switch (os) {
|
||||
case 'win32':
|
||||
return ' >$null 2>&1';
|
||||
return ' ';
|
||||
case 'linux':
|
||||
case 'darwin':
|
||||
return ' >/dev/null 2>&1';
|
||||
return ' ';
|
||||
default:
|
||||
return await log('Platform ' + os + ' is not supported', os, 'error');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user