10 Commits
1.1.0 ... 1.2.0

Author SHA1 Message Date
Shivam Mathur
154644c7b4 Merge pull request #15 from shivammathur/develop
1.2.0
2020-09-30 10:13:45 +05:30
Shivam Mathur
60ee2fe878 Bump version to 1.2.0 2020-09-30 10:08:07 +05:30
Shivam Mathur
4db45d6171 Merge pull request #14 from shivammathur/develop
1.1.3
2020-08-10 12:39:37 +05:30
Shivam Mathur
7045a9c4c7 Add cubrid to the lists
Update README

Bump version to 1.1.3
2020-08-10 12:22:10 +05:30
Shivam Mathur
506984d835 Merge pull request #13 from shivammathur/develop
1.1.2
2020-08-04 06:50:24 +05:30
Shivam Mathur
f94c56d97f Change PHP 8.0 prefix for linux
Update extension lists

Bump version to 1.1.2
2020-08-04 05:55:46 +05:30
Shivam Mathur
4309c25508 Merge pull request #12 from shivammathur/develop
Hotfix in 1.1.1
2020-07-18 22:16:55 +05:30
Shivam Mathur
7af896286c Update dependencies
Apply GHSA-p6mc-m468-83gw advisory to fix prototype pollution in lodash
2020-07-18 22:09:33 +05:30
Shivam Mathur
9666885116 Merge pull request #11 from shivammathur/develop
1.1.1
2020-06-19 10:37:03 +05:30
Shivam Mathur
7963f6b10a Bump version to 1.1.1 2020-06-19 10:27:23 +05:30
44 changed files with 2114 additions and 1475 deletions

View File

@@ -1,7 +1,7 @@
{ {
"env": { "node": true, "jest": true }, "env": { "node": true, "jest": true },
"parser": "@typescript-eslint/parser", "parser": "@typescript-eslint/parser",
"parserOptions": { "ecmaVersion": 2020, "sourceType": "module" }, "parserOptions": { "ecmaVersion": 2019, "sourceType": "module" },
"extends": [ "extends": [
"eslint:recommended", "eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended", "plugin:@typescript-eslint/eslint-recommended",

6
.github/FUNDING.yml vendored
View File

@@ -1,7 +1,7 @@
# These are supported funding model platforms # These are supported funding model platforms
github: shivammathur open_collective: setup-php
issuehunt: shivammathur tidelift: "npm/setup-php"
community_bridge: setup-php
patreon: shivammathur patreon: shivammathur
liberapay: shivammathur
custom: https://www.paypal.me/shivammathur custom: https://www.paypal.me/shivammathur

View File

@@ -1,23 +1,42 @@
--- ---
name: Bug report name: Bug report
about: Create a report to help us improve about: Nice, you found a bug!
title: '' title: ''
labels: '' labels: 'bug'
assignees: '' assignees: 'shivammathur'
--- ---
**Describe the bug** **Describe the bug**
A clear and concise description of what the bug is. <!-- Please describe the bug concisely. -->
**Version**
- [ ] I have checked releases and the bug exists in the latest patch version of `v1`.
- [ ] `v2`
- [ ] `v1`
**Runners**
<!-- Please mark the GitHub Action runner your workflow uses. -->
- [ ] GitHub Hosted
- [ ] Self Hosted
**Operating systems**
<!-- Please mention the operating systems your workflow uses. -->
**PHP versions**
<!-- Please mention the PHP versions your workflow uses. -->
**To Reproduce** **To Reproduce**
Please provide the GitHub Action `.yml` file. <!-- Please provide the relevant steps of your workflow `.yml` file. -->
**Expected behavior** **Expected behavior**
A clear and concise description of what you expected to happen. <!-- A clear and concise description of what you expected to happen. -->
**Screenshots** **Screenshots/Logs**
If applicable, add screenshots to help explain your problem. <!-- If applicable, add screenshots or logs to help explain your problem. -->
**Additional context** **Additional context**
Add any other context about the problem here. <!-- Add any other context about the problem here. -->
**Are you willing to submit a PR?**
<!-- We accept pull requests targeting the develop branch. -->

View File

@@ -1,20 +1,26 @@
--- ---
name: Feature request name: Feature request
about: Suggest an idea for this project about: Suggest a new feature
title: '' title: ''
labels: '' labels: 'enhancement'
assignees: '' assignees: 'shivammathur'
--- ---
**Is your feature request related to a problem? Please describe.** **Describe the feature**
A clear and concise description of what the problem is. Ex. I want to improve [...] <!-- Please describe concisely the feature you want to add. -->
**Describe the solution you'd like** **Version**
A clear and concise description of what you want to happen. - [ ] I have checked releases and the feature is missing in the latest patch version of `v1`.
**Describe alternatives you've considered** **Underlying issue**
A clear and concise description of any alternative solutions or features you've considered. <!-- Please describe the issue this would solve. -->
**Describe alternatives**
<!-- Please mention any alternative solutions you've considered. -->
**Additional context** **Additional context**
Add any other context or screenshots about the feature request here. <!-- Add any other context or screenshots about the feature request here. -->
**Are you willing to submit a PR?**
<!-- We accept pull requests targeting the develop branch. -->

View File

@@ -7,14 +7,13 @@ labels: bug or enhancement
## A Pull Request should be associated with an Issue. ## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs. > If you're fixing a bug, adding a new feature or improving something please provide the details in Issues,
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues, > so that the development can be pointed in the intended direction.
> and potentially we'll be able to point development in a particular direction.
Related issue: Related issue: <!-- Please link the related issue -->
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md) > Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR > Thank you for your contribution.
### Description ### Description
@@ -26,7 +25,12 @@ This PR [briefly explain what it does]
- [ ] I have run `npm run format` before the commit. - [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit. - [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit. - [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors. - [ ] `npm test` returns with no unit test errors and all code covered.
> In case this PR edits any scripts:
- [ ] I have checked the edited scripts for syntax.
- [ ] I have tested the changes in an integration test (If yes, provide workflow link).
<!-- <!--
- Please target the develop branch when submitting the pull request. - Please target the develop branch when submitting the pull request.

View File

@@ -1,33 +0,0 @@
---
name: 🐞 Bug Fix
about: You have a fix for a bug?
labels: bug
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -1,33 +0,0 @@
---
name: ⚙ Improvement
about: You have some improvement to make cache-extensions better?
labels: enhancement
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -1,33 +0,0 @@
---
name: 🎉 New Feature
about: You have implemented some neat idea that you want to make part of cache-extensions?
labels: enhancement
---
## A Pull Request should be associated with an Issue.
> We wish to have discussions in Issues. A single issue may be targeted by multiple PRs.
> If you're offering a new feature or fixing anything, we'd like to know beforehand in Issues,
> and potentially we'll be able to point development in a particular direction.
Related issue:
> Further notes in [Contribution Guidelines](.github/CONTRIBUTING.md)
> Thank you! We are open to PRs, but please understand if for technical reasons we are unable to accept each and any PR
### Description
This PR [briefly explain what it does]
> In case this PR introduced TypeScript/JavaScript code changes:
- [ ] I have written test cases for the changes in this pull request.
- [ ] I have run `npm run format` before the commit.
- [ ] I have run `npm run lint` before the commit.
- [ ] I have run `npm run release` before the commit.
- [ ] `npm test` returns with no unit test errors.
<!--
- Please target the develop branch when submitting the pull request.
-->

View File

@@ -14,9 +14,13 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
- [PHP Support](#tada-php-support) - [PHP Support](#tada-php-support)
- [OS/Platform Support](#cloud-osplatform-support) - [OS/Platform Support](#cloud-osplatform-support)
- [Usage](#memo-usage) - [Usage](#memo-usage)
- [Inputs](#inputs)
- [Workflow](#workflow)
- [Thread Safe Setup](#thread-safe-setup)
- [License](#scroll-license) - [License](#scroll-license)
- [Contributions](#1-contributions) - [Contributions](#1-contributions)
- [Support this project](#sparkling_heart-support-this-project) - [Support This Project](#sparkling_heart-support-this-project)
- [Dependencies](#package-dependencies)
## :tada: PHP Support ## :tada: PHP Support
@@ -31,27 +35,46 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|7.2|`Stable`|`Security fixes only`| |7.2|`Stable`|`Security fixes only`|
|7.3|`Stable`|`Active`| |7.3|`Stable`|`Active`|
|7.4|`Stable`|`Active`| |7.4|`Stable`|`Active`|
|8.0|`Experimental`|`In development`| |8.0|`Nightly`|`In development`|
## :cloud: OS/Platform Support ## :cloud: OS/Platform Support
|Virtual environment|matrix.operating-system| |Virtual environment|YAML workflow label|
|--- |--- | |--- |--- |
|Windows Server 2019|`windows-latest` or `windows-2019`| |Windows Server 2019|`windows-latest` or `windows-2019`|
|Ubuntu 20.04|`ubuntu-20.04`|
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`| |Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`|
|Ubuntu 16.04|`ubuntu-16.04`| |Ubuntu 16.04|`ubuntu-16.04`|
|macOS X Catalina 10.15|`macos-latest` or `macOS-10.15`| |macOS Catalina 10.15|`macos-latest` or `macOS-10.15`|
## :memo: Usage ## :memo: Usage
Inputs supported by this GitHub Action. 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 setup. 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.
- php-version `required` ### Inputs
- extensions `required`
- key `required` #### `php-version` (required)
- Specify the PHP version you want to setup.
- Accepts a `string`. For example `'7.4'`.
- See [PHP support](#tada-php-support) for supported PHP versions.
#### `extensions` (required)
- Specify the extensions you want to add or remove.
- Accepts a `string` in csv-format. For example `mbstring, , xdebug, :opcache`.
- Extensions prefixed with `:` are ignored.
#### `key` (required)
- Specify the key to identify the cache version.
- Accepts any `string`. For example `cache-v1`.
- Changing this would reset the cache.
See [action.yml](action.yml "Metadata for this GitHub Action") and usage below for more info. See [action.yml](action.yml "Metadata for this GitHub Action") and usage below for more info.
### Workflow
> Cache extensions in a PHP workflow > Cache extensions in a PHP workflow
```yaml ```yaml
@@ -71,7 +94,7 @@ jobs:
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Setup cache environment - name: Setup cache environment
id: cache-env id: extcache
uses: shivammathur/cache-extensions@v1 uses: shivammathur/cache-extensions@v1
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
@@ -81,9 +104,9 @@ jobs:
- name: Cache extensions - name: Cache extensions
uses: actions/cache@v2 uses: actions/cache@v2
with: with:
path: ${{ steps.cache-env.outputs.dir }} path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.cache-env.outputs.key }} key: ${{ steps.extcache.outputs.key }}
restore-keys: ${{ steps.cache-env.outputs.key }} restore-keys: ${{ steps.extcache.outputs.key }}
- name: Setup PHP - name: Setup PHP
uses: shivammathur/setup-php@v2 uses: shivammathur/setup-php@v2
@@ -92,6 +115,19 @@ jobs:
extensions: ${{ env.extensions }} extensions: ${{ env.extensions }}
``` ```
### Thread Safe Setup
If you setup 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 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 ## :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 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.
@@ -100,11 +136,15 @@ The scripts and documentation in this project are released under the [MIT Licens
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"). 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. If this action helped you.
- Please star the project and share it with the community. - Please star the project and share it. If you blog, please share your experience of using this action.
- If you blog, write about your experience while 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").
- I maintain this in my free time, please support me with a [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon") subscription or a one time contribution using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal"). - If you use this action at your company, please [reach out](mailto:contact@setup-php.com) to sponsor the project.
- If you need any help using this, please contact me using [Codementor](https://www.codementor.io/shivammathur "Shivam Mathur Codementor")
## :package: Dependencies
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")

187
dist/index.js vendored
View File

@@ -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: /***/ 87:
/***/ (function(module) { /***/ (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: /***/ 129:
/***/ (function(module) { /***/ (function(module) {
@@ -987,19 +1049,10 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
var __importStar = (this && this.__importStar) || function (mod) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (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); __setModuleDefault(result, mod);
return result; return result;
}; };
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.filterExtensions = exports.getInput = void 0; exports.filterExtensions = exports.getInput = void 0;
const core = __importStar(__webpack_require__(470)); const core = __importStar(__webpack_require__(470));
@@ -1009,17 +1062,15 @@ const core = __importStar(__webpack_require__(470));
* @param name * @param name
* @param mandatory * @param mandatory
*/ */
function getInput(name, mandatory) { async function getInput(name, mandatory) {
return __awaiter(this, void 0, void 0, function* () { const input = process.env[name];
const input = process.env[name]; switch (input) {
switch (input) { case '':
case '': case undefined:
case undefined: return core.getInput(name, { required: mandatory });
return core.getInput(name, { required: mandatory }); default:
default: return input;
return input; }
}
});
} }
exports.getInput = getInput; exports.getInput = getInput;
/** /**
@@ -1027,15 +1078,13 @@ exports.getInput = getInput;
* *
* @param extension_csv * @param extension_csv
*/ */
function filterExtensions(extension_csv) { async function filterExtensions(extension_csv) {
return __awaiter(this, void 0, void 0, function* () { return extension_csv
return extension_csv .split(',')
.split(',') .filter(extension => {
.filter(extension => { return extension.trim()[0] != ':';
return extension.trim()[0] != ':'; })
}) .join(',');
.join(',');
});
} }
exports.filterExtensions = filterExtensions; exports.filterExtensions = filterExtensions;
@@ -1063,6 +1112,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const os = __importStar(__webpack_require__(87)); const os = __importStar(__webpack_require__(87));
const utils_1 = __webpack_require__(82);
/** /**
* Commands * Commands
* *
@@ -1116,28 +1166,14 @@ class Command {
return cmdStr; 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) { function escapeData(s) {
return toCommandValue(s) return utils_1.toCommandValue(s)
.replace(/%/g, '%25') .replace(/%/g, '%25')
.replace(/\r/g, '%0D') .replace(/\r/g, '%0D')
.replace(/\n/g, '%0A'); .replace(/\n/g, '%0A');
} }
function escapeProperty(s) { function escapeProperty(s) {
return toCommandValue(s) return utils_1.toCommandValue(s)
.replace(/%/g, '%25') .replace(/%/g, '%25')
.replace(/\r/g, '%0D') .replace(/\r/g, '%0D')
.replace(/\n/g, '%0A') .replace(/\n/g, '%0A')
@@ -1171,6 +1207,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = __webpack_require__(431); 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 os = __importStar(__webpack_require__(87));
const path = __importStar(__webpack_require__(622)); const path = __importStar(__webpack_require__(622));
/** /**
@@ -1197,9 +1235,17 @@ var ExitCode;
*/ */
// eslint-disable-next-line @typescript-eslint/no-explicit-any // eslint-disable-next-line @typescript-eslint/no-explicit-any
function exportVariable(name, val) { function exportVariable(name, val) {
const convertedVal = command_1.toCommandValue(val); const convertedVal = utils_1.toCommandValue(val);
process.env[name] = convertedVal; process.env[name] = convertedVal;
command_1.issueCommand('set-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; exports.exportVariable = exportVariable;
/** /**
@@ -1215,7 +1261,13 @@ exports.setSecret = setSecret;
* @param inputPath * @param inputPath
*/ */
function addPath(inputPath) { function addPath(inputPath) {
command_1.issueCommand('add-path', {}, 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']}`; process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`;
} }
exports.addPath = addPath; exports.addPath = addPath;
@@ -1620,19 +1672,10 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
var __importStar = (this && this.__importStar) || function (mod) { var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod; if (mod && mod.__esModule) return mod;
var result = {}; var result = {};
if (mod != null) for (var k in mod) if (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); __setModuleDefault(result, mod);
return result; return result;
}; };
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
exports.run = void 0; exports.run = void 0;
const exec_1 = __webpack_require__(986); const exec_1 = __webpack_require__(986);
@@ -1642,20 +1685,18 @@ const utils = __importStar(__webpack_require__(163));
/** /**
* Run the script * Run the script
*/ */
function run() { async function run() {
return __awaiter(this, void 0, void 0, function* () { try {
try { let version = await utils.getInput('php-version', true);
let version = yield utils.getInput('php-version', true); version = version.length > 1 ? version.slice(0, 3) : version + '.0';
version = version.length > 1 ? version.slice(0, 3) : version + '.0'; const extensions = await utils.filterExtensions(await utils.getInput('extensions', true));
const extensions = yield utils.filterExtensions(yield utils.getInput('extensions', true)); const key = await utils.getInput('key', true);
const key = yield utils.getInput('key', true); const script_path = path.join(__dirname, '../src/extensions.sh');
const script_path = path.join(__dirname, '../src/extensions.sh'); await exec_1.exec('bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version);
yield exec_1.exec('bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version); }
} catch (error) {
catch (error) { core.setFailed(error.message);
core.setFailed(error.message); }
}
});
} }
exports.run = run; exports.run = run;
// call the run function // call the run function

2954
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{ {
"name": "cache-extensions", "name": "cache-extensions",
"version": "1.1.0", "version": "1.2.0",
"private": false, "private": false,
"description": "Cache extensions in GitHub Actions", "description": "Cache extensions in GitHub Actions",
"main": "dist/index.js", "main": "dist/index.js",
@@ -24,26 +24,26 @@
"author": "shivammathur", "author": "shivammathur",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/core": "^1.2.4", "@actions/core": "^1.2.6",
"@actions/exec": "^1.0.4" "@actions/exec": "^1.0.4"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^25.2.3", "@types/jest": "^26.0.14",
"@types/node": "^14.0.9", "@types/node": "^14.11.2",
"@typescript-eslint/eslint-plugin": "^3.1.0", "@typescript-eslint/eslint-plugin": "^4.3.0",
"@typescript-eslint/parser": "^3.1.0", "@typescript-eslint/parser": "^4.3.0",
"@zeit/ncc": "^0.22.3", "@zeit/ncc": "^0.22.3",
"eslint": "^7.1.0", "eslint": "^7.10.0",
"eslint-config-prettier": "^6.11.0", "eslint-config-prettier": "^6.12.0",
"eslint-plugin-import": "^2.20.2", "eslint-plugin-import": "^2.22.1",
"eslint-plugin-jest": "^23.13.2", "eslint-plugin-jest": "^24.0.2",
"eslint-plugin-prettier": "^3.1.3", "eslint-plugin-prettier": "^3.1.4",
"husky": "^4.2.5", "husky": "^4.3.0",
"jest": "^26.0.1", "jest": "^26.4.2",
"jest-circus": "^26.0.1", "jest-circus": "^26.4.2",
"prettier": "^2.0.5", "prettier": "^2.1.2",
"ts-jest": "^26.1.0", "ts-jest": "^26.4.1",
"typescript": "^3.9.3" "typescript": "^4.0.3"
}, },
"husky": { "husky": {
"skipCI": true, "skipCI": true,

View File

@@ -6,7 +6,7 @@ linux_extension_dir() {
elif [[ "$version" =~ $old_versions_linux ]]; then elif [[ "$version" =~ $old_versions_linux ]]; then
echo "/usr/lib/php5/$apiv" echo "/usr/lib/php5/$apiv"
elif [ "$version" = "8.0" ]; then elif [ "$version" = "8.0" ]; then
echo "/home/runner/php/8.0/lib/php/extensions/no-debug-non-zts-$apiv" echo "/usr/local/php/8.0/lib/php/extensions/no-debug-non-zts-$apiv"
else else
echo "/usr/lib/php/$apiv" echo "/usr/lib/php/$apiv"
fi fi
@@ -87,9 +87,9 @@ elif [ "$os" = "Darwin" ]; then
else else
os="Windows" os="Windows"
dir='C:\\tools\\php\\ext' dir='C:\\tools\\php\\ext'
if [ "$version" = "8.0" ] && [[ "$extensions" == *pcov* ]]; then fi
key="$key-pcov_20200410" if [ "$version" = "8.0" ]; then
fi key="$key-20200930"
fi fi
key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2) key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2)
echo "::set-output name=dir::$dir" echo "::set-output name=dir::$dir"

View File

@@ -5,6 +5,7 @@ bcmath
bz2 bz2
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -16,6 +17,7 @@ ftp
gd gd
hash hash
iconv iconv
ioncube
intl intl
json json
libxml libxml
@@ -31,6 +33,8 @@ pcntl
pcov pcov
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_sqlite pdo_sqlite
Phar Phar

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -20,6 +21,7 @@ gettext
hash hash
iconv iconv
imagick imagick
ioncube
intl intl
json json
libxml libxml
@@ -34,6 +36,8 @@ pcntl
pcov pcov
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -20,6 +21,7 @@ gettext
hash hash
iconv iconv
imagick imagick
ioncube
intl intl
json json
libxml libxml
@@ -34,6 +36,8 @@ pcntl
pcov pcov
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite

View File

@@ -5,6 +5,7 @@ apcu
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -17,6 +18,7 @@ gettext
hash hash
iconv iconv
igbinary igbinary
ioncube
intl intl
json json
libxml libxml

View File

@@ -4,6 +4,7 @@ apcu
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -15,6 +16,7 @@ gettext
hash hash
iconv iconv
igbinary igbinary
ioncube
intl intl
json json
libxml libxml

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -42,6 +44,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -41,6 +43,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -41,6 +43,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ hash
iconv iconv
igbinary igbinary
imap imap
ioncube
intl intl
json json
ldap ldap
@@ -41,6 +43,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -18,6 +18,7 @@ gettext
gmp gmp
hash hash
iconv iconv
ioncube
intl intl
json json
libxml libxml
@@ -29,6 +30,8 @@ pcntl
pcov pcov
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite
@@ -65,4 +68,5 @@ blackfire
[Zend Modules] [Zend Modules]
Zend OPcache Zend OPcache
Xdebug

View File

@@ -5,6 +5,7 @@ bcmath
bz2 bz2
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -16,6 +17,7 @@ ftp
gd gd
hash hash
iconv iconv
ioncube
intl intl
json json
libxml libxml
@@ -28,6 +30,8 @@ openssl
pcntl pcntl
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_sqlite pdo_sqlite
Phar Phar

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -20,6 +21,7 @@ gettext
hash hash
iconv iconv
imagick imagick
ioncube
intl intl
json json
libxml libxml
@@ -33,6 +35,8 @@ openssl
pcntl pcntl
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -20,6 +21,7 @@ gettext
hash hash
iconv iconv
imagick imagick
ioncube
intl intl
json json
libxml libxml
@@ -33,6 +35,8 @@ openssl
pcntl pcntl
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite

View File

@@ -5,6 +5,7 @@ apcu
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -17,6 +18,7 @@ gettext
hash hash
iconv iconv
igbinary igbinary
ioncube
intl intl
json json
libxml libxml

View File

@@ -4,6 +4,7 @@ apcu
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -15,6 +16,7 @@ gettext
hash hash
iconv iconv
igbinary igbinary
ioncube
intl intl
json json
libxml libxml

View File

@@ -4,6 +4,7 @@ apcu
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -15,6 +16,7 @@ gettext
hash hash
iconv iconv
igbinary igbinary
ioncube
intl intl
json json
libxml libxml

View File

@@ -4,6 +4,7 @@ apcu
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -15,6 +16,7 @@ gettext
hash hash
iconv iconv
igbinary igbinary
ioncube
intl intl
json json
libxml libxml

View File

@@ -4,6 +4,7 @@ apcu
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -15,6 +16,7 @@ gettext
hash hash
iconv iconv
igbinary igbinary
ioncube
intl intl
json json
libxml libxml

View File

@@ -1,47 +1,86 @@
[PHP Modules] [PHP Modules]
amqp amqp
apcu apcu
bcmath
bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl
date date
dba
dom
enchant
exif exif
FFI FFI
fileinfo fileinfo
filter filter
ftp ftp
gd
gettext gettext
gmp
hash hash
iconv iconv
igbinary igbinary
imape
ioncub
intl
json json
ldap
libxml libxml
mbstring
memcache memcache
memcached memcached
mongodb mongodb
msgpack msgpack
mysqli
mysqlnd
odbc
openssl openssl
pcntl pcntl
pcov
pcre pcre
oci8
PDO PDO
pdo_dblib
PDO_Firebird
PDO_OCI
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar Phar
posix posix
pspell
readline readline
redis redis
Reflection Reflection
session session
shmop shmop
SimpleXML
snmp
soap
sockets sockets
sodium sodium
SPL SPL
sqlite3
standard standard
sysvmsg sysvmsg
sysvsem sysvsem
sysvshm sysvshm
tidy
tokenizer tokenizer
xdebug xdebug
xml
xmlreader
xmlrpc
xmlwriter
xsl
yaml yaml
Zend OPcache Zend OPcache
zip
zlib zlib
zmq zmq
phalcon3 phalcon3

View File

@@ -4,6 +4,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -18,6 +19,7 @@ gettext
gmp gmp
hash hash
iconv iconv
ioncube
intl intl
json json
libxml libxml
@@ -29,6 +31,8 @@ pcntl
pcov pcov
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite
@@ -65,4 +69,4 @@ blackfire
[Zend Modules] [Zend Modules]
Zend OPcache Zend OPcache
Xdebug

View File

@@ -5,6 +5,7 @@ bcmath
bz2 bz2
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -16,6 +17,7 @@ ftp
gd gd
hash hash
iconv iconv
ioncube
intl intl
json json
libxml libxml
@@ -30,6 +32,8 @@ openssl
pcntl pcntl
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_sqlite pdo_sqlite
Phar Phar

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -20,6 +21,7 @@ gettext
hash hash
iconv iconv
imagick imagick
ioncube
intl intl
json json
libxml libxml
@@ -33,6 +35,8 @@ openssl
pcntl pcntl
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -20,6 +21,7 @@ gettext
hash hash
iconv iconv
imagick imagick
ioncube
intl intl
json json
libxml libxml
@@ -33,6 +35,8 @@ openssl
pcntl pcntl
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite

View File

@@ -7,6 +7,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -25,6 +26,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -47,6 +49,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -42,6 +44,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -42,6 +44,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -41,6 +43,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ iconv
igbinary igbinary
imap imap
interbase interbase
ioncube
intl intl
json json
ldap ldap
@@ -41,6 +43,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -6,6 +6,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dba dba
@@ -23,6 +24,7 @@ hash
iconv iconv
igbinary igbinary
imap imap
ioncube
intl intl
json json
ldap ldap
@@ -41,6 +43,8 @@ pcre
PDO PDO
pdo_dblib pdo_dblib
PDO_Firebird PDO_Firebird
oci8
PDO_OCI
pdo_mysql pdo_mysql
PDO_ODBC PDO_ODBC
pdo_pgsql pdo_pgsql

View File

@@ -4,6 +4,7 @@ bz2
calendar calendar
Core Core
ctype ctype
cubrid
curl curl
date date
dom dom
@@ -18,6 +19,7 @@ gettext
gmp gmp
hash hash
iconv iconv
ioncube
intl intl
json json
libxml libxml
@@ -29,6 +31,8 @@ pcntl
pcov pcov
pcre pcre
PDO PDO
oci8
PDO_OCI
pdo_mysql pdo_mysql
pdo_pgsql pdo_pgsql
pdo_sqlite pdo_sqlite
@@ -65,4 +69,5 @@ blackfire
[Zend Modules] [Zend Modules]
Zend OPcache Zend OPcache
Xdebug

View File

@@ -2,7 +2,7 @@
"compilerOptions": { "compilerOptions": {
/* Basic Options */ /* Basic Options */
// "incremental": true, /* Enable incremental compilation */ // "incremental": true, /* Enable incremental compilation */
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ "target": "ES2019", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */ "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
// "allowJs": true, /* Allow javascript files to be compiled. */ // "allowJs": true, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */ // "checkJs": true, /* Report errors in .js files. */