Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7df1333d2b | ||
|
|
9ef47bc1b1 | ||
|
|
bc3f3bc008 | ||
|
|
30e4da7ed2 | ||
|
|
1b7b26deeb | ||
|
|
0487f686e2 | ||
|
|
f5a7bad686 | ||
|
|
d48014e2bb | ||
|
|
3809746e7d | ||
|
|
f55a0043ab | ||
|
|
154644c7b4 | ||
|
|
60ee2fe878 | ||
|
|
4db45d6171 | ||
|
|
7045a9c4c7 | ||
|
|
506984d835 | ||
|
|
f94c56d97f |
4
.github/FUNDING.yml
vendored
4
.github/FUNDING.yml
vendored
@@ -1,5 +1,7 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: shivammathur
|
||||
open_collective: setup-php
|
||||
tidelift: "npm/setup-php"
|
||||
community_bridge: setup-php
|
||||
patreon: shivammathur
|
||||
custom: https://www.paypal.me/shivammathur
|
||||
|
||||
46
README.md
46
README.md
@@ -3,8 +3,8 @@
|
||||
<p align="center">
|
||||
<a href="https://github.com/shivammathur/cache-extensions" title="Cache PHP extensions in GitHub Actions"><img alt="GitHub Actions status" src="https://github.com/shivammathur/cache-extensions/workflows/Main%20workflow/badge.svg"></a>
|
||||
<a href="https://codecov.io/gh/shivammathur/cache-extensions" title="Code coverage"><img alt="Codecov Code Coverage" src="https://codecov.io/gh/shivammathur/cache-extensions/branch/master/graph/badge.svg"></a>
|
||||
<a href="https://github.com/shivammathur/cache-extensions/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg"></a>
|
||||
<a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-%3E%3D%205.3-8892BF.svg"></a>
|
||||
<a href="https://github.com/shivammathur/cache-extensions/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg?logo=open%20source%20initiative&logoColor=white&labelColor=555555"></a>
|
||||
<a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-5.3%20to%208.1-777bb3.svg?logo=php&logoColor=white&labelColor=555555"></a>
|
||||
</p>
|
||||
|
||||
Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action has to be used along with [shivammathur/setup-php](https://github.com/shivammathur/setup-php "Setup PHP") and [actions/cache](https://github.com/actions/cache "Cache in GitHub Actions") GitHub Actions. It configures the environment required to cache PHP extensions. Refer to [Usage](#memo-usage "How to use this") section to see how to use this.
|
||||
@@ -16,10 +16,11 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|
||||
- [Usage](#memo-usage)
|
||||
- [Inputs](#inputs)
|
||||
- [Workflow](#workflow)
|
||||
- [Thread Safe Setup](#thread-safe-setup)
|
||||
- [License](#scroll-license)
|
||||
- [Contributions](#1-contributions)
|
||||
- [Support this project](#sparkling_heart-support-this-project)
|
||||
- [Dependencies](#bookmark-dependencies)
|
||||
- [Support This Project](#sparkling_heart-support-this-project)
|
||||
- [Dependencies](#package-dependencies)
|
||||
|
||||
## :tada: PHP Support
|
||||
|
||||
@@ -31,10 +32,11 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|
||||
|5.6|`Stable`|`End of life`|
|
||||
|7.0|`Stable`|`End of life`|
|
||||
|7.1|`Stable`|`End of life`|
|
||||
|7.2|`Stable`|`Security fixes only`|
|
||||
|7.3|`Stable`|`Active`|
|
||||
|7.2|`Stable`|`End of life`|
|
||||
|7.3|`Stable`|`Security fixes only`|
|
||||
|7.4|`Stable`|`Active`|
|
||||
|8.0|`Nightly`|`In development`|
|
||||
|8.0|`Stable`|`Active`|
|
||||
|8.1|`Nightly`|`In development`|
|
||||
|
||||
## :cloud: OS/Platform Support
|
||||
|
||||
@@ -45,9 +47,12 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|
||||
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`|
|
||||
|Ubuntu 16.04|`ubuntu-16.04`|
|
||||
|macOS Catalina 10.15|`macos-latest` or `macOS-10.15`|
|
||||
|macOS Big Sur 11.0|`macOS-11.0`|
|
||||
|
||||
## :memo: Usage
|
||||
|
||||
Use this GitHub Action when the extensions you are adding in [setup-php](https://github.com/shivammathur/setup-php "setup-php GitHub Action") are installed and take a long time to set up. If you are using extensions which have the result `Installed and enabled` in the logs like `pecl` extensions on `Ubuntu` or extensions which have custom support, it is recommended to use this action to cache your extensions.
|
||||
|
||||
### Inputs
|
||||
|
||||
#### `php-version` (required)
|
||||
@@ -71,6 +76,7 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|
||||
See [action.yml](action.yml "Metadata for this GitHub Action") and usage below for more info.
|
||||
|
||||
### Workflow
|
||||
|
||||
> Cache extensions in a PHP workflow
|
||||
|
||||
```yaml
|
||||
@@ -111,23 +117,35 @@ jobs:
|
||||
extensions: ${{ env.extensions }}
|
||||
```
|
||||
|
||||
### Thread Safe Setup
|
||||
|
||||
If you set up both `TS` and `NTS` PHP versions on `Windows` in your workflow, please add `${{ env.phpts }}` to `key` and `restore-keys` inputs in `actions/cache` step in the above workflow to avoid a conflicting cache.
|
||||
|
||||
```yaml
|
||||
- name: Cache extensions
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.extcache.outputs.dir }}
|
||||
key: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
|
||||
restore-keys: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}
|
||||
```
|
||||
|
||||
## :scroll: License
|
||||
|
||||
The scripts and documentation in this project are released under the [MIT License](LICENSE "License for shivammathur/cache-extensions"). This project has multiple [dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories.
|
||||
The scripts and documentation in this project are under the [MIT License](LICENSE "License for shivammathur/cache-extensions"). This project has multiple [dependencies](https://github.com/shivammathur/cache-extensions/network/dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories.
|
||||
|
||||
## :+1: Contributions
|
||||
|
||||
Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/cache-extensions contribution guide"). If you face any issues while using this or want to suggest a feature/improvement, create an issue [here](https://github.com/shivammathur/cache-extensions/issues "Issues reported").
|
||||
|
||||
## :sparkling_heart: Support this project
|
||||
## :sparkling_heart: Support This Project
|
||||
|
||||
If this action helped you.
|
||||
|
||||
- Sponsor the project by subscribing on [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon") or by contributing using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal").
|
||||
- Please star the project and share it with the community.
|
||||
- If you blog, write about your experience of using this action.
|
||||
- If you need any help using this, please contact me using [Codementor](https://www.codementor.io/shivammathur "Shivam Mathur Codementor")u need any help using this, please contact me using [Codementor](https://www.codementor.io/shivammathur "Shivam Mathur Codementor")
|
||||
- Please star the project and share it. If you blog, please share your experience of using this action.
|
||||
- Please consider supporting our work by sponsoring using [Open Collective](https://opencollective.com/setup-php), [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal") or [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon").
|
||||
- If you use this action at your company, please [reach out](mailto:contact@setup-php.com) to sponsor the project.
|
||||
|
||||
## :bookmark: Dependencies
|
||||
## :package: Dependencies
|
||||
|
||||
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
|
||||
@@ -7,15 +7,28 @@ jest.mock('@actions/core', () => ({
|
||||
}));
|
||||
|
||||
describe('Utils tests', () => {
|
||||
it('checking readEnv', async () => {
|
||||
process.env['test'] = 'setup-php';
|
||||
expect(await utils.readEnv('test')).toBe('setup-php');
|
||||
expect(await utils.readEnv('undefined')).toBe('');
|
||||
});
|
||||
|
||||
it('checking getInput', async () => {
|
||||
process.env['test'] = 'cache-extensions';
|
||||
process.env['undefined'] = '';
|
||||
expect(await utils.getInput('test', false)).toBe('cache-extensions');
|
||||
expect(await utils.getInput('undefined', false)).toBe('');
|
||||
process.env['test'] = 'setup-php';
|
||||
expect(await utils.getInput('test', false)).toBe('setup-php');
|
||||
expect(await utils.getInput('cache-extensions', false)).toBe(
|
||||
'cache-extensions'
|
||||
);
|
||||
expect(await utils.getInput('DoesNotExist', false)).toBe('');
|
||||
expect(async () => {
|
||||
await utils.getInput('DoesNotExist', true);
|
||||
}).rejects.toThrow('Input required and not supplied: DoesNotExist');
|
||||
});
|
||||
|
||||
it('checking parseVersion', async () => {
|
||||
expect(await utils.parseVersion('7')).toBe('7.0');
|
||||
expect(await utils.parseVersion('7.4')).toBe('7.4');
|
||||
expect(await utils.parseVersion('latest')).toBe('7.4');
|
||||
});
|
||||
|
||||
it('checking filterExtensions', async () => {
|
||||
|
||||
158
dist/index.js
vendored
158
dist/index.js
vendored
@@ -953,6 +953,32 @@ class ExecState extends events.EventEmitter {
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 82:
|
||||
/***/ (function(__unusedmodule, exports) {
|
||||
|
||||
"use strict";
|
||||
|
||||
// We use any as a valid input type
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
/**
|
||||
* Sanitizes an input into a string so it can be passed into issueCommand safely
|
||||
* @param input input to sanitize into a string
|
||||
*/
|
||||
function toCommandValue(input) {
|
||||
if (input === null || input === undefined) {
|
||||
return '';
|
||||
}
|
||||
else if (typeof input === 'string' || input instanceof String) {
|
||||
return input;
|
||||
}
|
||||
return JSON.stringify(input);
|
||||
}
|
||||
exports.toCommandValue = toCommandValue;
|
||||
//# sourceMappingURL=utils.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 87:
|
||||
/***/ (function(module) {
|
||||
|
||||
@@ -960,6 +986,42 @@ module.exports = require("os");
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 102:
|
||||
/***/ (function(__unusedmodule, exports, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
|
||||
// For internal use, subject to change.
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||
result["default"] = mod;
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
// We use any as a valid input type
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
const fs = __importStar(__webpack_require__(747));
|
||||
const os = __importStar(__webpack_require__(87));
|
||||
const utils_1 = __webpack_require__(82);
|
||||
function issueCommand(command, message) {
|
||||
const filePath = process.env[`GITHUB_${command}`];
|
||||
if (!filePath) {
|
||||
throw new Error(`Unable to find environment variable for file command ${command}`);
|
||||
}
|
||||
if (!fs.existsSync(filePath)) {
|
||||
throw new Error(`Missing file at path: ${filePath}`);
|
||||
}
|
||||
fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, {
|
||||
encoding: 'utf8'
|
||||
});
|
||||
}
|
||||
exports.issueCommand = issueCommand;
|
||||
//# sourceMappingURL=file-command.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 129:
|
||||
/***/ (function(module) {
|
||||
|
||||
@@ -987,13 +1049,28 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.filterExtensions = exports.getInput = void 0;
|
||||
exports.filterExtensions = exports.parseVersion = exports.getInput = exports.readEnv = void 0;
|
||||
const core = __importStar(__webpack_require__(470));
|
||||
/**
|
||||
* Function to read environment variable and return a string value.
|
||||
*
|
||||
* @param property
|
||||
*/
|
||||
async function readEnv(property) {
|
||||
const value = process.env[property];
|
||||
switch (value) {
|
||||
case undefined:
|
||||
return '';
|
||||
default:
|
||||
return value;
|
||||
}
|
||||
}
|
||||
exports.readEnv = readEnv;
|
||||
/**
|
||||
* Function to get inputs from both with and env annotations.
|
||||
*
|
||||
@@ -1001,16 +1078,39 @@ const core = __importStar(__webpack_require__(470));
|
||||
* @param mandatory
|
||||
*/
|
||||
async function getInput(name, mandatory) {
|
||||
const input = process.env[name];
|
||||
switch (input) {
|
||||
case '':
|
||||
case undefined:
|
||||
return core.getInput(name, { required: mandatory });
|
||||
default:
|
||||
const input = core.getInput(name);
|
||||
const env_input = await readEnv(name);
|
||||
switch (true) {
|
||||
case input != '':
|
||||
return input;
|
||||
case input == '' && env_input != '':
|
||||
return env_input;
|
||||
case input == '' && env_input == '' && mandatory:
|
||||
throw new Error(`Input required and not supplied: ${name}`);
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
exports.getInput = getInput;
|
||||
/**
|
||||
* Function to parse PHP version.
|
||||
*
|
||||
* @param version
|
||||
*/
|
||||
async function parseVersion(version) {
|
||||
switch (version) {
|
||||
case 'latest':
|
||||
return '7.4';
|
||||
default:
|
||||
switch (true) {
|
||||
case version.length > 1:
|
||||
return version.slice(0, 3);
|
||||
default:
|
||||
return version + '.0';
|
||||
}
|
||||
}
|
||||
}
|
||||
exports.parseVersion = parseVersion;
|
||||
/**
|
||||
* Function to filter extensions
|
||||
*
|
||||
@@ -1050,6 +1150,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const os = __importStar(__webpack_require__(87));
|
||||
const utils_1 = __webpack_require__(82);
|
||||
/**
|
||||
* Commands
|
||||
*
|
||||
@@ -1103,28 +1204,14 @@ class Command {
|
||||
return cmdStr;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Sanitizes an input into a string so it can be passed into issueCommand safely
|
||||
* @param input input to sanitize into a string
|
||||
*/
|
||||
function toCommandValue(input) {
|
||||
if (input === null || input === undefined) {
|
||||
return '';
|
||||
}
|
||||
else if (typeof input === 'string' || input instanceof String) {
|
||||
return input;
|
||||
}
|
||||
return JSON.stringify(input);
|
||||
}
|
||||
exports.toCommandValue = toCommandValue;
|
||||
function escapeData(s) {
|
||||
return toCommandValue(s)
|
||||
return utils_1.toCommandValue(s)
|
||||
.replace(/%/g, '%25')
|
||||
.replace(/\r/g, '%0D')
|
||||
.replace(/\n/g, '%0A');
|
||||
}
|
||||
function escapeProperty(s) {
|
||||
return toCommandValue(s)
|
||||
return utils_1.toCommandValue(s)
|
||||
.replace(/%/g, '%25')
|
||||
.replace(/\r/g, '%0D')
|
||||
.replace(/\n/g, '%0A')
|
||||
@@ -1158,6 +1245,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const command_1 = __webpack_require__(431);
|
||||
const file_command_1 = __webpack_require__(102);
|
||||
const utils_1 = __webpack_require__(82);
|
||||
const os = __importStar(__webpack_require__(87));
|
||||
const path = __importStar(__webpack_require__(622));
|
||||
/**
|
||||
@@ -1184,10 +1273,18 @@ var ExitCode;
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||
function exportVariable(name, val) {
|
||||
const convertedVal = command_1.toCommandValue(val);
|
||||
const convertedVal = utils_1.toCommandValue(val);
|
||||
process.env[name] = convertedVal;
|
||||
const filePath = process.env['GITHUB_ENV'] || '';
|
||||
if (filePath) {
|
||||
const delimiter = '_GitHubActionsFileCommandDelimeter_';
|
||||
const commandValue = `${name}<<${delimiter}${os.EOL}${convertedVal}${os.EOL}${delimiter}`;
|
||||
file_command_1.issueCommand('ENV', commandValue);
|
||||
}
|
||||
else {
|
||||
command_1.issueCommand('set-env', { name }, convertedVal);
|
||||
}
|
||||
}
|
||||
exports.exportVariable = exportVariable;
|
||||
/**
|
||||
* Registers a secret which will get masked from logs
|
||||
@@ -1202,7 +1299,13 @@ exports.setSecret = setSecret;
|
||||
* @param inputPath
|
||||
*/
|
||||
function addPath(inputPath) {
|
||||
const filePath = process.env['GITHUB_PATH'] || '';
|
||||
if (filePath) {
|
||||
file_command_1.issueCommand('PATH', inputPath);
|
||||
}
|
||||
else {
|
||||
command_1.issueCommand('add-path', {}, inputPath);
|
||||
}
|
||||
process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
|
||||
}
|
||||
exports.addPath = addPath;
|
||||
@@ -1607,7 +1710,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
@@ -1622,8 +1725,7 @@ const utils = __importStar(__webpack_require__(163));
|
||||
*/
|
||||
async function run() {
|
||||
try {
|
||||
let version = await utils.getInput('php-version', true);
|
||||
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
||||
const version = await utils.parseVersion(await utils.getInput('php-version', true));
|
||||
const extensions = await utils.filterExtensions(await utils.getInput('extensions', true));
|
||||
const key = await utils.getInput('key', true);
|
||||
const script_path = path.join(__dirname, '../src/extensions.sh');
|
||||
|
||||
3000
package-lock.json
generated
3000
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
34
package.json
34
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cache-extensions",
|
||||
"version": "1.1.1",
|
||||
"version": "1.4.0",
|
||||
"private": false,
|
||||
"description": "Cache extensions in GitHub Actions",
|
||||
"main": "dist/index.js",
|
||||
@@ -24,26 +24,26 @@
|
||||
"author": "shivammathur",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.2.4",
|
||||
"@actions/core": "^1.2.6",
|
||||
"@actions/exec": "^1.0.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jest": "^26.0.5",
|
||||
"@types/node": "^14.0.23",
|
||||
"@typescript-eslint/eslint-plugin": "^3.6.1",
|
||||
"@typescript-eslint/parser": "^3.6.1",
|
||||
"@types/jest": "^26.0.19",
|
||||
"@types/node": "^14.14.17",
|
||||
"@typescript-eslint/eslint-plugin": "^4.11.1",
|
||||
"@typescript-eslint/parser": "^4.11.1",
|
||||
"@zeit/ncc": "^0.22.3",
|
||||
"eslint": "^7.4.0",
|
||||
"eslint-config-prettier": "^6.11.0",
|
||||
"eslint-plugin-import": "^2.22.0",
|
||||
"eslint-plugin-jest": "^23.18.0",
|
||||
"eslint-plugin-prettier": "^3.1.4",
|
||||
"husky": "^4.2.5",
|
||||
"jest": "^26.1.0",
|
||||
"jest-circus": "^26.1.0",
|
||||
"prettier": "^2.0.5",
|
||||
"ts-jest": "^26.1.3",
|
||||
"typescript": "^3.9.7"
|
||||
"eslint": "^7.16.0",
|
||||
"eslint-config-prettier": "^7.1.0",
|
||||
"eslint-plugin-import": "^2.22.1",
|
||||
"eslint-plugin-jest": "^24.1.3",
|
||||
"eslint-plugin-prettier": "^3.3.0",
|
||||
"husky": "^4.3.6",
|
||||
"jest": "^26.6.3",
|
||||
"jest-circus": "^26.6.3",
|
||||
"prettier": "^2.2.1",
|
||||
"ts-jest": "^26.4.4",
|
||||
"typescript": "^4.1.3"
|
||||
},
|
||||
"husky": {
|
||||
"skipCI": true,
|
||||
|
||||
@@ -8,9 +8,10 @@ import * as utils from './utils';
|
||||
*/
|
||||
export async function run(): Promise<void> {
|
||||
try {
|
||||
let version: string = await utils.getInput('php-version', true);
|
||||
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
||||
const extensions = await utils.filterExtensions(
|
||||
const version: string = await utils.parseVersion(
|
||||
await utils.getInput('php-version', true)
|
||||
);
|
||||
const extensions: string = await utils.filterExtensions(
|
||||
await utils.getInput('extensions', true)
|
||||
);
|
||||
const key: string = await utils.getInput('key', true);
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
linux_extension_dir() {
|
||||
apiv=$1
|
||||
old_versions_linux="5.[4-5]"
|
||||
if [ "$version" = "5.3" ]; then
|
||||
echo "/home/runner/php/5.3.29/lib/php/extensions/no-debug-non-zts-$apiv"
|
||||
elif [[ "$version" =~ $old_versions_linux ]]; then
|
||||
if [[ "$version" =~ $old_versions ]]; then
|
||||
echo "/usr/lib/php5/$apiv"
|
||||
elif [ "$version" = "8.0" ]; then
|
||||
echo "/home/runner/php/8.0/lib/php/extensions/no-debug-non-zts-$apiv"
|
||||
elif [[ "$version" =~ 5.3|$nightly_versions ]]; then
|
||||
echo "/usr/local/php/$version/lib/php/extensions/no-debug-non-zts-$apiv"
|
||||
else
|
||||
echo "/usr/lib/php/$apiv"
|
||||
fi
|
||||
@@ -17,9 +14,13 @@ darwin_extension_dir() {
|
||||
old_versions_darwin="5.[3-5]"
|
||||
if [[ "$version" =~ $old_versions_darwin ]]; then
|
||||
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$apiv"
|
||||
else
|
||||
if [[ "$(sysctl -n hw.optional.arm64 2>/dev/null)" = "1" ]]; then
|
||||
echo "/opt/homebrew/lib/php/pecl/$apiv"
|
||||
else
|
||||
echo "/usr/local/lib/php/pecl/$apiv"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
get_apiv() {
|
||||
@@ -33,6 +34,7 @@ get_apiv() {
|
||||
7.2) echo "20170718" ;;
|
||||
7.3) echo "20180731" ;;
|
||||
7.4) echo "20190902" ;;
|
||||
8.0) echo "20200930" ;;
|
||||
*)
|
||||
php_h="https://raw.githubusercontent.com/php/php-src/master/main/php.h"
|
||||
curl -sSL --retry 5 "$php_h" | grep "PHP_API_VERSION" | cut -d' ' -f 3
|
||||
@@ -73,6 +75,8 @@ extensions=$1
|
||||
key=$2
|
||||
version=$3
|
||||
os=$(uname -s)
|
||||
old_versions="5.[4-5]"
|
||||
nightly_versions="8.[1-9]"
|
||||
if [ "$os" = "Linux" ]; then
|
||||
release=$(lsb_release -s -c)
|
||||
os=$os-$release
|
||||
@@ -87,10 +91,8 @@ elif [ "$os" = "Darwin" ]; then
|
||||
else
|
||||
os="Windows"
|
||||
dir='C:\\tools\\php\\ext'
|
||||
if [ "$version" = "8.0" ] && [[ "$extensions" == *pcov* ]]; then
|
||||
key="$key-pcov_20200410"
|
||||
fi
|
||||
fi
|
||||
key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2)
|
||||
key="$key-20201231"
|
||||
echo "::set-output name=dir::$dir"
|
||||
echo "::set-output name=key::$key"
|
||||
@@ -1,28 +1,37 @@
|
||||
[PHP Modules]
|
||||
amqp
|
||||
apc
|
||||
apcu
|
||||
bcmath
|
||||
bz2
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
enchant
|
||||
ereg
|
||||
exif
|
||||
fileinfo
|
||||
filter
|
||||
ftp
|
||||
gd
|
||||
gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
mcrypt
|
||||
memcache
|
||||
memcached
|
||||
mongo
|
||||
mongodb
|
||||
mysql
|
||||
mysqli
|
||||
mysqlnd
|
||||
@@ -31,10 +40,15 @@ pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
Phar
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
redis
|
||||
Reflection
|
||||
@@ -65,4 +79,3 @@ blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Xdebug
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -20,6 +21,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
imagick
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
@@ -34,6 +36,8 @@ pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -20,6 +21,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
imagick
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
@@ -34,6 +36,8 @@ pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
|
||||
@@ -5,6 +5,7 @@ apcu
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
@@ -17,6 +18,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
|
||||
@@ -4,6 +4,7 @@ apcu
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
@@ -15,6 +16,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -42,6 +44,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -41,6 +43,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -41,6 +43,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ hash
|
||||
iconv
|
||||
igbinary
|
||||
imap
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -41,6 +43,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
@@ -85,4 +89,3 @@ blackfire
|
||||
[Zend Modules]
|
||||
Xdebug
|
||||
Zend OPcache
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
[PHP Modules]
|
||||
amqp
|
||||
apcu
|
||||
bcmath
|
||||
bz2
|
||||
calendar
|
||||
@@ -6,6 +8,7 @@ Core
|
||||
ctype
|
||||
curl
|
||||
date
|
||||
dba
|
||||
dom
|
||||
enchant
|
||||
exif
|
||||
@@ -18,18 +21,30 @@ gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
imap
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
memcache
|
||||
memcached
|
||||
mongodb
|
||||
msgpack
|
||||
mysqli
|
||||
mysqlnd
|
||||
odbc
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
@@ -37,12 +52,15 @@ Phar
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
redis
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
SimpleXML
|
||||
snmp
|
||||
soap
|
||||
sockets
|
||||
sodium
|
||||
SPL
|
||||
sqlite3
|
||||
standard
|
||||
@@ -51,19 +69,21 @@ sysvsem
|
||||
sysvshm
|
||||
tidy
|
||||
tokenizer
|
||||
xdebug
|
||||
xml
|
||||
xmlreader
|
||||
xmlrpc
|
||||
xmlwriter
|
||||
xsl
|
||||
yaml
|
||||
Zend OPcache
|
||||
zip
|
||||
zlib
|
||||
zmq
|
||||
ioncube
|
||||
phalcon3
|
||||
phalcon4
|
||||
blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Zend OPcache
|
||||
Xdebug
|
||||
|
||||
Zend OPcache
|
||||
|
||||
77
src/lists/bionic-php8.1-extensions
Normal file
77
src/lists/bionic-php8.1-extensions
Normal file
@@ -0,0 +1,77 @@
|
||||
[PHP Modules]
|
||||
bcmath
|
||||
bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
curl
|
||||
date
|
||||
dba
|
||||
dom
|
||||
exif
|
||||
FFI
|
||||
fileinfo
|
||||
filter
|
||||
ftp
|
||||
gd
|
||||
gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
mysqli
|
||||
mysqlnd
|
||||
odbc
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_dblib
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
Phar
|
||||
phpdbg_webhelper
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
SimpleXML
|
||||
soap
|
||||
sockets
|
||||
sodium
|
||||
SPL
|
||||
sqlite3
|
||||
standard
|
||||
sysvmsg
|
||||
sysvsem
|
||||
sysvshm
|
||||
tidy
|
||||
tokenizer
|
||||
xdebug
|
||||
xml
|
||||
xmlreader
|
||||
xmlwriter
|
||||
xsl
|
||||
Zend OPcache
|
||||
zip
|
||||
zlib
|
||||
phalcon3
|
||||
phalcon4
|
||||
blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Zend OPcache
|
||||
Xdebug
|
||||
@@ -1,38 +1,56 @@
|
||||
[PHP Modules]
|
||||
amqp
|
||||
apc
|
||||
apcu
|
||||
bcmath
|
||||
bz2
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
enchant
|
||||
ereg
|
||||
exif
|
||||
fileinfo
|
||||
filter
|
||||
ftp
|
||||
gd
|
||||
gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
mcrypt
|
||||
memcache
|
||||
memcached
|
||||
mongo
|
||||
mongodb
|
||||
mysql
|
||||
mysqli
|
||||
mysqlnd
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
Phar
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
redis
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
@@ -61,4 +79,3 @@ blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Xdebug
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -20,6 +21,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
imagick
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
@@ -33,6 +35,8 @@ openssl
|
||||
pcntl
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -20,6 +21,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
imagick
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
@@ -33,6 +35,8 @@ openssl
|
||||
pcntl
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
|
||||
@@ -5,6 +5,7 @@ apcu
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
@@ -17,6 +18,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
|
||||
@@ -4,6 +4,7 @@ apcu
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
@@ -15,6 +16,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
|
||||
@@ -4,6 +4,7 @@ apcu
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
@@ -15,6 +16,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
|
||||
@@ -4,6 +4,7 @@ apcu
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
@@ -15,6 +16,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
|
||||
@@ -4,6 +4,7 @@ apcu
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
@@ -15,6 +16,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
|
||||
@@ -1,47 +1,86 @@
|
||||
[PHP Modules]
|
||||
amqp
|
||||
apcu
|
||||
bcmath
|
||||
bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
dom
|
||||
enchant
|
||||
exif
|
||||
FFI
|
||||
fileinfo
|
||||
filter
|
||||
ftp
|
||||
gd
|
||||
gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
imape
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
memcache
|
||||
memcached
|
||||
mongodb
|
||||
msgpack
|
||||
mysqli
|
||||
mysqlnd
|
||||
odbc
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
oci8
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
Phar
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
redis
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
SimpleXML
|
||||
snmp
|
||||
soap
|
||||
sockets
|
||||
sodium
|
||||
SPL
|
||||
sqlite3
|
||||
standard
|
||||
sysvmsg
|
||||
sysvsem
|
||||
sysvshm
|
||||
tidy
|
||||
tokenizer
|
||||
xdebug
|
||||
xml
|
||||
xmlreader
|
||||
xmlrpc
|
||||
xmlwriter
|
||||
xsl
|
||||
yaml
|
||||
Zend OPcache
|
||||
zip
|
||||
zlib
|
||||
zmq
|
||||
phalcon3
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
[PHP Modules]
|
||||
amqp
|
||||
apcu
|
||||
bcmath
|
||||
bz2
|
||||
calendar
|
||||
@@ -6,6 +8,7 @@ Core
|
||||
ctype
|
||||
curl
|
||||
date
|
||||
dba
|
||||
dom
|
||||
enchant
|
||||
exif
|
||||
@@ -18,18 +21,30 @@ gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
imap
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
memcache
|
||||
memcached
|
||||
mongodb
|
||||
msgpack
|
||||
mysqli
|
||||
mysqlnd
|
||||
odbc
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
@@ -37,12 +52,15 @@ Phar
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
redis
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
SimpleXML
|
||||
snmp
|
||||
soap
|
||||
sockets
|
||||
sodium
|
||||
SPL
|
||||
sqlite3
|
||||
standard
|
||||
@@ -51,18 +69,21 @@ sysvsem
|
||||
sysvshm
|
||||
tidy
|
||||
tokenizer
|
||||
xdebug
|
||||
xml
|
||||
xmlreader
|
||||
xmlrpc
|
||||
xmlwriter
|
||||
xsl
|
||||
yaml
|
||||
Zend OPcache
|
||||
zip
|
||||
zlib
|
||||
zmq
|
||||
ioncube
|
||||
phalcon3
|
||||
phalcon4
|
||||
blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Zend OPcache
|
||||
Xdebug
|
||||
Zend OPcache
|
||||
|
||||
77
src/lists/focal-php8.1-extensions
Normal file
77
src/lists/focal-php8.1-extensions
Normal file
@@ -0,0 +1,77 @@
|
||||
[PHP Modules]
|
||||
bcmath
|
||||
bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
curl
|
||||
date
|
||||
dba
|
||||
dom
|
||||
exif
|
||||
FFI
|
||||
fileinfo
|
||||
filter
|
||||
ftp
|
||||
gd
|
||||
gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
mysqli
|
||||
mysqlnd
|
||||
odbc
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_dblib
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
Phar
|
||||
phpdbg_webhelper
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
SimpleXML
|
||||
soap
|
||||
sockets
|
||||
sodium
|
||||
SPL
|
||||
sqlite3
|
||||
standard
|
||||
sysvmsg
|
||||
sysvsem
|
||||
sysvshm
|
||||
tidy
|
||||
tokenizer
|
||||
xdebug
|
||||
xml
|
||||
xmlreader
|
||||
xmlwriter
|
||||
xsl
|
||||
Zend OPcache
|
||||
zip
|
||||
zlib
|
||||
phalcon3
|
||||
phalcon4
|
||||
blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Zend OPcache
|
||||
Xdebug
|
||||
@@ -1,39 +1,54 @@
|
||||
[PHP Modules]
|
||||
amqp
|
||||
apc
|
||||
apcu
|
||||
bcmath
|
||||
bz2
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dom
|
||||
enchant
|
||||
ereg
|
||||
exif
|
||||
fileinfo
|
||||
filter
|
||||
ftp
|
||||
gd
|
||||
gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
mcrypt
|
||||
memcache
|
||||
memcached
|
||||
mongo
|
||||
mongodb
|
||||
mysql
|
||||
mysqli
|
||||
mysqlnd
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
Phar
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
redis
|
||||
Reflection
|
||||
@@ -64,4 +79,3 @@ blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Xdebug
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -20,6 +21,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
imagick
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
@@ -33,6 +35,8 @@ openssl
|
||||
pcntl
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -20,6 +21,7 @@ gettext
|
||||
hash
|
||||
iconv
|
||||
imagick
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
libxml
|
||||
@@ -33,6 +35,8 @@ openssl
|
||||
pcntl
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
|
||||
@@ -7,6 +7,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -25,6 +26,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -47,6 +49,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -42,6 +44,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -42,6 +44,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -41,6 +43,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ iconv
|
||||
igbinary
|
||||
imap
|
||||
interbase
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -41,6 +43,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -6,6 +6,7 @@ bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
cubrid
|
||||
curl
|
||||
date
|
||||
dba
|
||||
@@ -23,6 +24,7 @@ hash
|
||||
iconv
|
||||
igbinary
|
||||
imap
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
@@ -41,6 +43,8 @@ pcre
|
||||
PDO
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
[PHP Modules]
|
||||
amqp
|
||||
apcu
|
||||
bcmath
|
||||
bz2
|
||||
calendar
|
||||
@@ -6,6 +8,7 @@ Core
|
||||
ctype
|
||||
curl
|
||||
date
|
||||
dba
|
||||
dom
|
||||
enchant
|
||||
exif
|
||||
@@ -18,18 +21,30 @@ gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
igbinary
|
||||
imap
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
memcache
|
||||
memcached
|
||||
mongodb
|
||||
msgpack
|
||||
mysqli
|
||||
mysqlnd
|
||||
odbc
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_dblib
|
||||
PDO_Firebird
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
@@ -37,12 +52,15 @@ Phar
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
redis
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
SimpleXML
|
||||
snmp
|
||||
soap
|
||||
sockets
|
||||
sodium
|
||||
SPL
|
||||
sqlite3
|
||||
standard
|
||||
@@ -51,19 +69,21 @@ sysvsem
|
||||
sysvshm
|
||||
tidy
|
||||
tokenizer
|
||||
xdebug
|
||||
xml
|
||||
xmlreader
|
||||
xmlrpc
|
||||
xmlwriter
|
||||
xsl
|
||||
yaml
|
||||
Zend OPcache
|
||||
zip
|
||||
zlib
|
||||
zmq
|
||||
ioncube
|
||||
phalcon3
|
||||
phalcon4
|
||||
blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Zend OPcache
|
||||
Xdebug
|
||||
|
||||
Zend OPcache
|
||||
|
||||
77
src/lists/xenial-php8.1-extensions
Normal file
77
src/lists/xenial-php8.1-extensions
Normal file
@@ -0,0 +1,77 @@
|
||||
[PHP Modules]
|
||||
bcmath
|
||||
bz2
|
||||
calendar
|
||||
Core
|
||||
ctype
|
||||
curl
|
||||
date
|
||||
dba
|
||||
dom
|
||||
exif
|
||||
FFI
|
||||
fileinfo
|
||||
filter
|
||||
ftp
|
||||
gd
|
||||
gettext
|
||||
gmp
|
||||
hash
|
||||
iconv
|
||||
ioncube
|
||||
intl
|
||||
json
|
||||
ldap
|
||||
libxml
|
||||
mbstring
|
||||
mysqli
|
||||
mysqlnd
|
||||
odbc
|
||||
openssl
|
||||
pcntl
|
||||
pcov
|
||||
pcre
|
||||
PDO
|
||||
oci8
|
||||
PDO_OCI
|
||||
pdo_dblib
|
||||
pdo_mysql
|
||||
PDO_ODBC
|
||||
pdo_pgsql
|
||||
pdo_sqlite
|
||||
pgsql
|
||||
Phar
|
||||
phpdbg_webhelper
|
||||
posix
|
||||
pspell
|
||||
readline
|
||||
Reflection
|
||||
session
|
||||
shmop
|
||||
SimpleXML
|
||||
soap
|
||||
sockets
|
||||
sodium
|
||||
SPL
|
||||
sqlite3
|
||||
standard
|
||||
sysvmsg
|
||||
sysvsem
|
||||
sysvshm
|
||||
tidy
|
||||
tokenizer
|
||||
xdebug
|
||||
xml
|
||||
xmlreader
|
||||
xmlwriter
|
||||
xsl
|
||||
Zend OPcache
|
||||
zip
|
||||
zlib
|
||||
phalcon3
|
||||
phalcon4
|
||||
blackfire
|
||||
|
||||
[Zend Modules]
|
||||
Zend OPcache
|
||||
Xdebug
|
||||
50
src/utils.ts
50
src/utils.ts
@@ -1,6 +1,21 @@
|
||||
import * as fs from 'fs';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
/**
|
||||
* Function to read environment variable and return a string value.
|
||||
*
|
||||
* @param property
|
||||
*/
|
||||
export async function readEnv(property: string): Promise<string> {
|
||||
const value = process.env[property];
|
||||
switch (value) {
|
||||
case undefined:
|
||||
return '';
|
||||
default:
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to get inputs from both with and env annotations.
|
||||
*
|
||||
@@ -11,13 +26,36 @@ export async function getInput(
|
||||
name: string,
|
||||
mandatory: boolean
|
||||
): Promise<string> {
|
||||
const input = process.env[name];
|
||||
switch (input) {
|
||||
case '':
|
||||
case undefined:
|
||||
return core.getInput(name, {required: mandatory});
|
||||
default:
|
||||
const input = core.getInput(name);
|
||||
const env_input = await readEnv(name);
|
||||
switch (true) {
|
||||
case input != '':
|
||||
return input;
|
||||
case input == '' && env_input != '':
|
||||
return env_input;
|
||||
case input == '' && env_input == '' && mandatory:
|
||||
throw new Error(`Input required and not supplied: ${name}`);
|
||||
default:
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to parse PHP version.
|
||||
*
|
||||
* @param version
|
||||
*/
|
||||
export async function parseVersion(version: string): Promise<string> {
|
||||
switch (version) {
|
||||
case 'latest':
|
||||
return '7.4';
|
||||
default:
|
||||
switch (true) {
|
||||
case version.length > 1:
|
||||
return version.slice(0, 3);
|
||||
default:
|
||||
return version + '.0';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user