setup-php 2.13.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +990 -922
  3. package/lib/config.d.ts +3 -0
  4. package/lib/config.js +71 -71
  5. package/lib/config.js.map +1 -1
  6. package/lib/coverage.d.ts +5 -0
  7. package/lib/coverage.js +97 -87
  8. package/lib/coverage.js.map +1 -1
  9. package/lib/extensions.d.ts +4 -0
  10. package/lib/extensions.js +214 -200
  11. package/lib/extensions.js.map +1 -1
  12. package/lib/fetch.d.ts +1 -0
  13. package/lib/fetch.js +63 -0
  14. package/lib/fetch.js.map +1 -0
  15. package/lib/install.d.ts +2 -0
  16. package/lib/install.js +75 -81
  17. package/lib/install.js.map +1 -1
  18. package/lib/tools.d.ts +23 -0
  19. package/lib/tools.js +367 -386
  20. package/lib/tools.js.map +1 -1
  21. package/lib/utils.d.ts +21 -0
  22. package/lib/utils.js +261 -291
  23. package/lib/utils.js.map +1 -1
  24. package/package.json +67 -56
  25. package/src/config.ts +82 -82
  26. package/src/configs/brew_extensions +31 -0
  27. package/src/configs/composer.env +2 -0
  28. package/src/configs/ini/jit.ini +3 -0
  29. package/src/configs/ini/php.ini +2 -0
  30. package/src/configs/ini/xdebug.ini +1 -0
  31. package/src/configs/os_releases.csv +19 -17
  32. package/src/configs/php-versions.json +6 -5
  33. package/src/configs/php_packages +12 -0
  34. package/src/configs/{php.json → pm/php.json} +29 -29
  35. package/src/configs/{phpunit.json → pm/phpunit.json} +24 -24
  36. package/src/configs/tools.json +278 -235
  37. package/src/configs/tools_schema.json +125 -114
  38. package/src/coverage.ts +144 -142
  39. package/src/extensions.ts +367 -349
  40. package/src/fetch.ts +54 -0
  41. package/src/install.ts +66 -82
  42. package/src/scripts/darwin.sh +285 -249
  43. package/src/scripts/extensions/add_extensions.ps1 +194 -0
  44. package/src/scripts/extensions/add_extensions.sh +184 -0
  45. package/src/scripts/{ext → extensions}/blackfire.ps1 +32 -32
  46. package/src/scripts/{ext → extensions}/blackfire.sh +22 -21
  47. package/src/scripts/{ext → extensions}/couchbase.sh +43 -43
  48. package/src/scripts/{ext → extensions}/cubrid.sh +60 -60
  49. package/src/scripts/extensions/extension_map.php +132 -0
  50. package/src/scripts/{ext → extensions}/firebird.ps1 +19 -19
  51. package/src/scripts/{ext → extensions}/firebird.sh +39 -35
  52. package/src/scripts/{ext → extensions}/gearman.sh +22 -22
  53. package/src/scripts/{ext → extensions}/geos.sh +17 -17
  54. package/src/scripts/{ext → extensions}/http.ps1 +54 -54
  55. package/src/scripts/{ext → extensions}/http.sh +109 -120
  56. package/src/scripts/{ext → extensions}/intl.sh +23 -23
  57. package/src/scripts/{ext → extensions}/ioncube.ps1 +33 -32
  58. package/src/scripts/{ext → extensions}/ioncube.sh +21 -19
  59. package/src/scripts/{ext → extensions}/oci.ps1 +85 -60
  60. package/src/scripts/{ext → extensions}/oci.sh +65 -63
  61. package/src/scripts/{ext → extensions}/patches/firebird.sh +11 -11
  62. package/src/scripts/{ext → extensions}/patches/geos.sh +7 -7
  63. package/src/scripts/{ext → extensions}/patches/http.sh +11 -11
  64. package/src/scripts/{ext → extensions}/patches/pdo_oci.sh +6 -6
  65. package/src/scripts/{ext → extensions}/patches/phpize.sh +26 -26
  66. package/src/scripts/{ext → extensions}/patches/protobuf.sh +4 -4
  67. package/src/scripts/{ext → extensions}/phalcon.ps1 +54 -54
  68. package/src/scripts/{ext → extensions}/phalcon.sh +58 -58
  69. package/src/scripts/{ext → extensions}/source.sh +145 -144
  70. package/src/scripts/extensions/sqlsrv.sh +15 -0
  71. package/src/scripts/linux.sh +269 -256
  72. package/src/scripts/tools/add_tools.ps1 +239 -26
  73. package/src/scripts/tools/add_tools.sh +175 -20
  74. package/src/scripts/tools/blackfire.ps1 +19 -19
  75. package/src/scripts/tools/blackfire.sh +40 -39
  76. package/src/scripts/tools/grpc_php_plugin.ps1 +21 -21
  77. package/src/scripts/tools/grpc_php_plugin.sh +58 -58
  78. package/src/scripts/tools/ppa.sh +192 -151
  79. package/src/scripts/tools/protoc.ps1 +38 -38
  80. package/src/scripts/tools/protoc.sh +28 -28
  81. package/src/scripts/tools/symfony.ps1 +14 -0
  82. package/src/scripts/tools/symfony.sh +13 -0
  83. package/src/scripts/unix.sh +186 -0
  84. package/src/scripts/win32.ps1 +352 -494
  85. package/src/tools.ts +512 -538
  86. package/src/utils.ts +415 -500
  87. package/.eslintrc.json +0 -16
  88. package/.github/CODE_OF_CONDUCT.md +0 -76
  89. package/.github/CONTRIBUTING.md +0 -70
  90. package/.github/FUNDING.yml +0 -7
  91. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
  92. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
  93. package/.github/PULL_REQUEST_TEMPLATE.md +0 -37
  94. package/.github/SECURITY.md +0 -29
  95. package/.github/workflows/docs.yml +0 -77
  96. package/.github/workflows/node-workflow.yml +0 -51
  97. package/.github/workflows/workflow.yml +0 -78
  98. package/.idea/workspace.xml +0 -113
  99. package/.prettierrc.json +0 -12
  100. package/__tests__/config.test.ts +0 -52
  101. package/__tests__/coverage.test.ts +0 -110
  102. package/__tests__/extensions.test.ts +0 -263
  103. package/__tests__/install.test.ts +0 -175
  104. package/__tests__/tools.test.ts +0 -524
  105. package/__tests__/utils.test.ts +0 -307
  106. package/action.yml +0 -29
  107. package/dist/index.js +0 -3051
  108. package/examples/bedrock.yml +0 -32
  109. package/examples/blackfire-player.yml +0 -31
  110. package/examples/blackfire.yml +0 -31
  111. package/examples/cakephp-mysql.yml +0 -114
  112. package/examples/cakephp-postgres.yml +0 -112
  113. package/examples/cakephp.yml +0 -92
  114. package/examples/codeigniter.yml +0 -34
  115. package/examples/laravel-mysql.yml +0 -74
  116. package/examples/laravel-postgres.yml +0 -74
  117. package/examples/laravel.yml +0 -42
  118. package/examples/lumen-mysql.yml +0 -74
  119. package/examples/lumen-postgres.yml +0 -74
  120. package/examples/lumen.yml +0 -38
  121. package/examples/phalcon-mysql.yml +0 -74
  122. package/examples/phalcon-postgres.yml +0 -73
  123. package/examples/sage.yml +0 -57
  124. package/examples/slim-framework.yml +0 -34
  125. package/examples/symfony-mysql.yml +0 -57
  126. package/examples/symfony-postgres.yml +0 -55
  127. package/examples/symfony.yml +0 -39
  128. package/examples/yii2-mysql.yml +0 -73
  129. package/examples/yii2-postgres.yml +0 -71
  130. package/examples/zend-framework.yml +0 -36
  131. package/jest.config.js +0 -12
  132. package/lib/sapi.js +0 -64
  133. package/src/scripts/common.sh +0 -314
  134. package/tsconfig.json +0 -18
@@ -1,71 +0,0 @@
1
- # GitHub Action for Yii Framework with PostgreSQL
2
- name: Testing Yii2 with PostgreSQL
3
- on: [push, pull_request]
4
- jobs:
5
- yii:
6
- name: Yii2 (PHP ${{ matrix.php-versions }})
7
- runs-on: ubuntu-latest
8
- env:
9
- DB_USERNAME: postgres
10
- DB_PASSWORD: postgres
11
- TEST_DB_USERNAME: postgres
12
- TEST_DB_PASSWORD: postgres
13
- DB_CHARSET: utf8
14
- services:
15
- postgres:
16
- image: postgres:10.8
17
- env:
18
- POSTGRES_USER: postgres
19
- POSTGRES_PASSWORD: postgres
20
- POSTGRES_DB: postgres
21
- ports:
22
- - 5432/tcp
23
- options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
24
- strategy:
25
- fail-fast: false
26
- matrix:
27
- php-versions: ['7.2', '7.3', '7.4']
28
- steps:
29
- - name: Checkout
30
- uses: actions/checkout@v2
31
- - name: Set Node.js 10.x
32
- uses: actions/setup-node@v1
33
- with:
34
- node-version: 10.x
35
- - name: Setup PHP, with composer and extensions
36
- uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
37
- with:
38
- php-version: ${{ matrix.php-versions }}
39
- extensions: mbstring, intl, gd, imagick, zip, dom, pgsql
40
- coverage: xdebug #optional
41
- - name: Get composer cache directory
42
- id: composer-cache
43
- run: echo "::set-output name=dir::$(composer config cache-files-dir)"
44
- - name: Cache composer dependencies
45
- uses: actions/cache@v2
46
- with:
47
- path: ${{ steps.composer-cache.outputs.dir }}
48
- # Use composer.json for key, if composer.lock is not committed.
49
- # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
50
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
51
- restore-keys: ${{ runner.os }}-composer-
52
- - name: Install Composer dependencies
53
- run: composer install --no-progress --prefer-dist --optimize-autoloader
54
- - name: Prepare the application
55
- run: |
56
- php -r "file_exists('.env') || copy('.env.dist', '.env');"
57
- php console/yii app/setup
58
- npm install --development
59
- npm run build
60
- env:
61
- DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
62
- TEST_DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
63
- - name: Run Tests
64
- run: |
65
- vendor/bin/codecept build
66
- php tests/bin/yii app/setup --interactive=0
67
- nohup php -S localhost:8080 > yii.log 2>&1 &
68
- vendor/bin/codecept run
69
- env:
70
- DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
71
- TEST_DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
@@ -1,36 +0,0 @@
1
- # GitHub Action for Zend Framework
2
- name: Testing Zend Framework
3
- on: [push, pull_request]
4
- jobs:
5
- build:
6
- strategy:
7
- matrix:
8
- operating-system: [ubuntu-latest, windows-latest, macos-latest]
9
- php-versions: ['7.2', '7.3', '7.4']
10
- runs-on: ${{ matrix.operating-system }}
11
- steps:
12
- - name: Checkout
13
- uses: actions/checkout@v2
14
- - name: Setup PHP, with composer and extensions
15
- uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
16
- with:
17
- php-version: ${{ matrix.php-versions }}
18
- extensions: mbstring, bcmath, curl, intl
19
- coverage: xdebug #optional
20
- - name: Get composer cache directory
21
- id: composer-cache
22
- run: echo "::set-output name=dir::$(composer config cache-files-dir)"
23
- - name: Cache composer dependencies
24
- uses: actions/cache@v2
25
- with:
26
- path: ${{ steps.composer-cache.outputs.dir }}
27
- # Use composer.json for key, if composer.lock is not committed.
28
- # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
29
- key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
30
- restore-keys: ${{ runner.os }}-composer-
31
- - name: Install dependencies
32
- run: |
33
- composer install --no-progress --prefer-dist --optimize-autoloader
34
- composer require --dev phpunit/phpunit squizlabs/php_codesniffer zendframework/zend-test
35
- - name: Test with phpunit
36
- run: vendor/bin/phpunit --coverage-text
package/jest.config.js DELETED
@@ -1,12 +0,0 @@
1
- module.exports = {
2
- clearMocks: true,
3
- moduleFileExtensions: ['js', 'ts'],
4
- testEnvironment: 'node',
5
- testMatch: ['**/*.test.ts'],
6
- testRunner: 'jest-circus/runner',
7
- transform: {
8
- '^.+\\.ts$': 'ts-jest'
9
- },
10
- verbose: true,
11
- collectCoverage: true
12
- };
package/lib/sapi.js DELETED
@@ -1,64 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.addSAPI = exports.getSapiList = void 0;
23
- const utils = __importStar(require("./utils"));
24
- async function getSapiList(sapi_csv) {
25
- const sapi_list = await utils.packageArray(sapi_csv);
26
- const servers = sapi_list.filter(sapi => /.*:.*/.test(sapi));
27
- return [servers[servers.length - 1]].concat(sapi_list.filter(sapi => /.*[^:].*/.test(sapi)));
28
- }
29
- exports.getSapiList = getSapiList;
30
- /**
31
- * Function to set sapi
32
- *
33
- * @param sapi_csv
34
- * @param os_version
35
- */
36
- async function addSAPI(sapi_csv, os_version) {
37
- let script = '\n' + (await utils.stepLog('Setup SAPI', os_version));
38
- let sapi_list;
39
- switch (true) {
40
- case sapi_csv.split(':').length - 1 > 1:
41
- sapi_list = await getSapiList(sapi_csv);
42
- script +=
43
- '\n' +
44
- utils.log('Multiple SAPI with web servers specified, choosing the last one ' +
45
- sapi_list[0], os_version, 'warning');
46
- break;
47
- default:
48
- sapi_list = await utils.packageArray(sapi_csv);
49
- }
50
- await utils.asyncForEach(sapi_list, async function (sapi) {
51
- sapi = sapi.toLowerCase();
52
- switch (os_version) {
53
- case 'linux':
54
- case 'darwin':
55
- script += '\nadd_sapi ' + sapi;
56
- break;
57
- case 'win32':
58
- script += '\nAdd-Sapi ' + sapi;
59
- break;
60
- }
61
- });
62
- return script;
63
- }
64
- exports.addSAPI = addSAPI;
@@ -1,314 +0,0 @@
1
- # Variables
2
- export tick="✓"
3
- export cross="✗"
4
- export curl_opts=(-sL)
5
- export old_versions="5.[3-5]"
6
- export jit_versions="8.[0-9]"
7
- export nightly_versions="8.[1-9]"
8
- export xdebug3_versions="7.[2-4]|8.[0-9]"
9
- export tool_path_dir="/usr/local/bin"
10
- export composer_home="$HOME/.composer"
11
- export composer_bin="$composer_home/vendor/bin"
12
- export composer_json="$composer_home/composer.json"
13
- export composer_lock="$composer_home/composer.lock"
14
- export latest="releases/latest/download"
15
- export github="https://github.com/shivammathur"
16
- export jsdeliver="https://cdn.jsdelivr.net/gh/shivammathur"
17
-
18
- # Function to log start of a operation.
19
- step_log() {
20
- message=$1
21
- printf "\n\033[90;1m==> \033[0m\033[37;1m%s\033[0m\n" "$message"
22
- }
23
-
24
- # Function to log result of a operation.
25
- add_log() {
26
- mark=$1
27
- subject=$2
28
- message=$3
29
- if [ "$mark" = "$tick" ]; then
30
- printf "\033[32;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "$message"
31
- else
32
- printf "\033[31;1m%s \033[0m\033[34;1m%s \033[0m\033[90;1m%s\033[0m\n" "$mark" "$subject" "$message"
33
- [ "$fail_fast" = "true" ] && exit 1
34
- fi
35
- }
36
-
37
- # Function to log result of installing extension.
38
- add_extension_log() {
39
- (
40
- check_extension "$(echo "$1" | cut -d '-' -f 1)" && add_log "$tick" "$1" "$2"
41
- ) || add_log "$cross" "$1" "Could not install $1 on PHP ${semver:?}"
42
- }
43
-
44
- # Function to read env inputs.
45
- read_env() {
46
- [[ -z "${update}" ]] && update='false' && UPDATE='false' || update="${update}"
47
- [ "$update" = false ] && [[ -n ${UPDATE} ]] && update="${UPDATE}"
48
- [[ -z "${runner}" ]] && runner='github' && RUNNER='github' || runner="${runner}"
49
- [ "$runner" = false ] && [[ -n ${RUNNER} ]] && runner="${RUNNER}"
50
- [[ -z "${fail_fast}" ]] && fail_fast='false' || fail_fast="${fail_fast}"
51
- }
52
-
53
- # Function to download a file using cURL.
54
- # mode: -s pipe to stdout, -v save file and return status code
55
- # execute: -e save file as executable
56
- get() {
57
- mode=$1
58
- execute=$2
59
- file_path=$3
60
- shift 3
61
- links=("$@")
62
- if [ "$mode" = "-s" ]; then
63
- sudo curl "${curl_opts[@]}" "${links[0]}"
64
- else
65
- for link in "${links[@]}"; do
66
- status_code=$(sudo curl -w "%{http_code}" -o "$file_path" "${curl_opts[@]}" "$link")
67
- [ "$status_code" = "200" ] && break
68
- done
69
- [ "$execute" = "-e" ] && sudo chmod a+x "$file_path"
70
- [ "$mode" = "-v" ] && echo "$status_code"
71
- fi
72
- }
73
-
74
- # Function to download and run scripts from GitHub releases with jsdeliver fallback.
75
- run_script() {
76
- repo=$1
77
- shift
78
- args=("$@")
79
- get -q -e /tmp/install.sh "$github/$repo/$latest/install.sh" "$jsdeliver/$1@main/scripts/install.sh"
80
- bash /tmp/install.sh "${args[@]}"
81
- }
82
-
83
- # Function to install required packages on self-hosted runners.
84
- self_hosted_setup() {
85
- if [ "$runner" = "self-hosted" ]; then
86
- if [[ "${version:?}" =~ $old_versions ]]; then
87
- add_log "$cross" "PHP" "PHP $version is not supported on self-hosted runner"
88
- exit 1
89
- else
90
- self_hosted_helper >/dev/null 2>&1
91
- fi
92
- fi
93
- }
94
-
95
- # Function to test if extension is loaded.
96
- check_extension() {
97
- extension=$1
98
- if [ "$extension" != "mysql" ]; then
99
- php -m | grep -i -q -w "$extension"
100
- else
101
- php -m | grep -i -q "$extension"
102
- fi
103
- }
104
-
105
- # Function to enable cached extensions.
106
- enable_cache_extension() {
107
- deps=()
108
- for ext in /tmp/extcache/"$1"/*; do
109
- deps+=("$(basename "$ext")")
110
- done
111
- if [ "x${deps[*]}" = "x" ]; then
112
- sudo rm -rf /tmp/extcache/"$1"
113
- enable_extension "$1" "$2"
114
- else
115
- deps+=("$1")
116
- if php "${deps[@]/#/-d ${2}=}" -m 2>/dev/null | grep -i -q "$1"; then
117
- for ext in "${deps[@]}"; do
118
- sudo rm -rf /tmp/extcache/"$ext"
119
- enable_extension "$ext" "$2"
120
- done
121
- fi
122
- fi
123
- }
124
-
125
- # Function to enable existing extensions.
126
- enable_extension() {
127
- modules_dir="/var/lib/php/modules/$version"
128
- [ -d "$modules_dir" ] && sudo find "$modules_dir" -path "*disabled*$1" -delete
129
- if [ -d /tmp/extcache/"$1" ]; then
130
- enable_cache_extension "$1" "$2"
131
- elif ! check_extension "$1" && [ -e "${ext_dir:?}/$1.so" ]; then
132
- echo "$2=${ext_dir:?}/$1.so" | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null
133
- fi
134
- }
135
-
136
- # Function to configure PHP
137
- configure_php() {
138
- (
139
- echo -e "date.timezone=UTC\nmemory_limit=-1"
140
- [[ "$version" =~ $jit_versions ]] && echo -e "opcache.enable=1\nopcache.jit_buffer_size=256M\nopcache.jit=1235"
141
- [[ "$version" =~ $xdebug3_versions ]] && echo -e "xdebug.mode=coverage"
142
- ) | sudo tee -a "${pecl_file:-${ini_file[@]}}" >/dev/null
143
- }
144
-
145
- # Function to configure PECL.
146
- configure_pecl() {
147
- if ! [ -e /tmp/pecl_config ]; then
148
- for script in pear pecl; do
149
- sudo "$script" config-set php_ini "${pecl_file:-${ini_file[@]}}"
150
- sudo "$script" channel-update "$script".php.net
151
- done
152
- echo '' | sudo tee /tmp/pecl_config >/dev/null 2>&1
153
- fi
154
- }
155
-
156
- # Function to get the PECL version of an extension.
157
- get_pecl_version() {
158
- extension=$1
159
- stability="$(echo "$2" | grep -m 1 -Eio "(stable|alpha|beta|rc|snapshot|preview)")"
160
- pecl_rest='https://pecl.php.net/rest/r/'
161
- response=$(get -s -n "" "$pecl_rest$extension"/allreleases.xml)
162
- pecl_version=$(echo "$response" | grep -m 1 -Eio "([0-9]+\.[0-9]+\.[0-9]+${stability}[0-9]+)")
163
- if [ ! "$pecl_version" ]; then
164
- pecl_version=$(echo "$response" | grep -m 1 -Eo "([0-9]+\.[0-9]+\.[0-9]+)")
165
- fi
166
- echo "$pecl_version"
167
- }
168
-
169
- # Function to install PECL extensions and accept default options
170
- pecl_install() {
171
- local extension=$1
172
- add_pecl >/dev/null 2>&1
173
- yes '' 2>/dev/null | sudo pecl install -f "$extension" >/dev/null 2>&1
174
- }
175
-
176
- # Function to install a specific version of PECL extension.
177
- add_pecl_extension() {
178
- extension=$1
179
- pecl_version=$2
180
- prefix=$3
181
- enable_extension "$extension" "$prefix"
182
- if [[ $pecl_version =~ .*(alpha|beta|rc|snapshot|preview).* ]]; then
183
- pecl_version=$(get_pecl_version "$extension" "$pecl_version")
184
- fi
185
- ext_version=$(php -r "echo phpversion('$extension');")
186
- if [ "$ext_version" = "$pecl_version" ]; then
187
- add_log "${tick:?}" "$extension" "Enabled"
188
- else
189
- disable_extension "$extension" >/dev/null 2>&1
190
- delete_extension "$extension" >/dev/null 2>&1
191
- pecl_install "$extension-$pecl_version"
192
- add_extension_log "$extension-$pecl_version" "Installed and enabled"
193
- fi
194
- }
195
-
196
- # Function to setup pre-release extensions using PECL.
197
- add_unstable_extension() {
198
- extension=$1
199
- stability=$2
200
- prefix=$3
201
- pecl_version=$(get_pecl_version "$extension" "$stability")
202
- add_pecl_extension "$extension" "$pecl_version" "$prefix"
203
- }
204
-
205
- # Function to extract tool version.
206
- get_tool_version() {
207
- tool=$1
208
- param=$2
209
- alp="[a-zA-Z0-9]"
210
- version_regex="[0-9]+((\.{1}$alp+)+)(\.{0})(-$alp+){0,1}"
211
- if [ "$tool" = "composer" ]; then
212
- if [ "$param" != "snapshot" ]; then
213
- composer_version="$(grep -Ea "const\sVERSION" "$tool_path_dir/composer" | grep -Eo "$version_regex")"
214
- else
215
- composer_version="$(grep -Ea "const\sBRANCH_ALIAS_VERSION" "$tool_path_dir/composer" | grep -Eo "$version_regex")+$(grep -Ea "const\sVERSION" "$tool_path_dir/composer" | grep -Eo "[a-zA-z0-9]+" | tail -n 1)"
216
- fi
217
- echo "$composer_version" | sudo tee /tmp/composer_version
218
- else
219
- $tool "$param" 2>/dev/null | sed -Ee "s/[Cc]omposer(.)?$version_regex//g" | grep -Eo "$version_regex" | head -n 1
220
- fi
221
- }
222
-
223
- # Function to configure composer
224
- configure_composer() {
225
- tool_path=$1
226
- sudo ln -sf "$tool_path" "$tool_path.phar"
227
- php -r "try {\$p=new Phar('$tool_path.phar', 0);exit(0);} catch(Exception \$e) {exit(1);}"
228
- if [ $? -eq 1 ]; then
229
- add_log "$cross" "composer" "Could not download composer"
230
- exit 1
231
- fi
232
- if ! [ -d "$composer_home" ]; then
233
- sudo -u "$(id -un)" -g "$(id -gn)" mkdir -p -m=00755 "$composer_home"
234
- else
235
- sudo chown -R "$(id -un)":"$(id -gn)" "$composer_home"
236
- fi
237
- if ! [ -e "$composer_json" ]; then
238
- echo '{}' | tee "$composer_json" >/dev/null
239
- chmod 644 "$composer_json"
240
- fi
241
- composer -q config -g process-timeout 0
242
- echo "$composer_bin" >>"$GITHUB_PATH"
243
- if [ -n "$COMPOSER_TOKEN" ]; then
244
- composer -q config -g github-oauth.github.com "$COMPOSER_TOKEN"
245
- fi
246
- }
247
-
248
- # Function to setup a remote tool.
249
- add_tool() {
250
- url=$1
251
- tool=$2
252
- ver_param=$3
253
- tool_path="$tool_path_dir/$tool"
254
- if ! [[ "$PATH" =~ $tool_path_dir ]]; then
255
- export PATH=$PATH:"$tool_path_dir"
256
- echo "export PATH=\$PATH:$tool_path_dir" | sudo tee -a "$GITHUB_ENV" >/dev/null
257
- fi
258
- if [ ! -e "$tool_path" ]; then
259
- rm -rf "$tool_path"
260
- fi
261
- IFS="," read -r -a url <<<"$url"
262
- status_code=$(get -v -e "$tool_path" "${url[@]}")
263
- if [ "$status_code" != "200" ] && [[ "${url[0]}" =~ .*github.com.*releases.*latest.* ]]; then
264
- url[0]="${url[0]//releases\/latest\/download/releases/download/$(get -s -n "" "$(echo "${url[0]}" | cut -d '/' -f '1-5')/releases" | grep -Eo -m 1 "([0-9]+\.[0-9]+\.[0-9]+)/$(echo "${url[0]}" | sed -e "s/.*\///")" | cut -d '/' -f 1)}"
265
- status_code=$(get -v -e "$tool_path" "${url[0]}")
266
- fi
267
- if [ "$status_code" = "200" ]; then
268
- add_tools_helper "$tool"
269
- tool_version=$(get_tool_version "$tool" "$ver_param")
270
- add_log "$tick" "$tool" "Added $tool $tool_version"
271
- else
272
- add_log "$cross" "$tool" "Could not setup $tool"
273
- fi
274
- }
275
-
276
- # Function to setup a tool using composer.
277
- add_composertool() {
278
- tool=$1
279
- release=$2
280
- prefix=$3
281
- if [[ "$tool" =~ prestissimo|composer-prefetcher ]]; then
282
- composer_version=$(cat /tmp/composer_version)
283
- if [ "$(echo "$composer_version" | cut -d'.' -f 1)" != "1" ]; then
284
- echo "::warning:: Skipping $tool, as it does not support Composer $composer_version. Specify composer:v1 in tools to use $tool"
285
- add_log "$cross" "$tool" "Skipped"
286
- return
287
- fi
288
- fi
289
- (
290
- sudo rm -f "$composer_lock" >/dev/null 2>&1 || true
291
- composer global require "$prefix$release" 2>&1 | tee /tmp/composer.log >/dev/null 2>&1
292
- log=$(grep "$prefix$tool" /tmp/composer.log) &&
293
- tool_version=$(get_tool_version 'echo' "$log") &&
294
- add_log "$tick" "$tool" "Added $tool $tool_version"
295
- ) || add_log "$cross" "$tool" "Could not setup $tool"
296
- add_tools_helper "$tool"
297
- if [ -e "$composer_bin/composer" ]; then
298
- sudo cp -p "$tool_path_dir/composer" "$composer_bin"
299
- fi
300
- }
301
-
302
- # Function to get PHP version in semver format.
303
- php_semver() {
304
- php -v | grep -Eo -m 1 "[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+([0-9]+)?)?" | head -n 1
305
- }
306
-
307
- # Function to get the tag for a php version.
308
- php_src_tag() {
309
- php_src_tag='master'
310
- if ! [[ ${version:?} =~ $nightly_versions ]]; then
311
- php_src_tag="php-$semver"
312
- fi
313
- echo "$php_src_tag"
314
- }
package/tsconfig.json DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "esModuleInterop": true,
4
- "lib": [
5
- "ES2020"
6
- ],
7
- "module": "commonjs",
8
- "moduleResolution": "node",
9
- "noImplicitAny": true,
10
- "outDir": "./lib",
11
- "removeComments": true,
12
- "rootDir": "./src",
13
- "sourceMap": true,
14
- "strict": true,
15
- "target": "ES2019"
16
- },
17
- "exclude": ["__tests__", "lib", "node_modules"]
18
- }