15 Commits
1.5.0 ... 1.5.1

Author SHA1 Message Date
Shivam Mathur
b9734e30e3 Reset cache if imagick is in extensions on macOS. 2021-06-30 20:41:22 +05:30
github-actions[bot]
a91eaeae66 Updating lists 2021-06-11 15:07:09 +00:00
github-actions[bot]
5fd9e31957 Updating lists 2021-06-03 15:16:23 +00:00
Shivam Mathur
3a9c03a639 Update dependencies
Update to Jest 27

Update tsconfig.json
2021-05-31 08:02:04 +05:30
github-actions[bot]
7c356bdccc Updating lists 2021-05-20 16:38:08 +00:00
github-actions[bot]
dc78eb217c Updating lists 2021-05-19 15:14:27 +00:00
github-actions[bot]
b98cea8adc Updating lists 2021-05-13 15:05:16 +00:00
Shivam Mathur
470b94d722 Clear cache on Windows for imagick 2021-05-12 19:43:35 +05:30
Shivam Mathur
acce7e61bc Update dependencies 2021-05-11 18:09:52 +05:30
github-actions[bot]
c2ce0737e9 Updating lists 2021-05-06 15:22:12 +00:00
github-actions[bot]
a6cb9851d8 Updating lists 2021-04-22 15:05:53 +00:00
Shivam Mathur
9d87cbc9e2 Update README.md 2021-04-06 13:55:10 +05:30
Shivam Mathur
dfaa2c7ea5 Fix extension_dir 2021-04-03 16:05:05 +05:30
github-actions[bot]
a0bace7fd6 Updating lists 2021-04-01 15:20:02 +00:00
github-actions[bot]
3da1e049db Updating lists 2021-03-18 15:22:07 +00:00
10 changed files with 4006 additions and 7237 deletions

View File

@@ -7,7 +7,7 @@
<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.
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 for details and example workflow.
## Contents
@@ -47,7 +47,7 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|Ubuntu 18.04|`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`|
|macOS Big Sur 11.x|`macOS-11.0`|
## :memo: Usage
@@ -57,14 +57,14 @@ Use this GitHub Action when the extensions you are adding in [setup-php](https:/
#### `php-version` (required)
- Specify the PHP version you want to set up.
- Specify the PHP version you want to set-up.
- 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`.
- Specify the extensions you want to setup.
- Accepts a `string` in csv-format. For example `mbstring, xdebug, :opcache`.
- Extensions prefixed with `:` are ignored.
#### `key` (required)
@@ -148,4 +148,4 @@ If this action helped you.
## :package: Dependencies
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")

View File

@@ -5,21 +5,19 @@ import * as utils from '../src/utils';
* Mock cache.ts
*/
jest.mock('../src/cache', () => ({
run: jest.fn().mockImplementation(
async (): Promise<string> => {
let version: string = process.env['php-version'] || '';
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
const extensions = await utils.filterExtensions(
process.env['extensions'] || ''
);
const key: string = process.env['key'] || '';
const script_path = 'extensions.sh';
run: jest.fn().mockImplementation(async (): Promise<string> => {
let version: string = process.env['php-version'] || '';
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
const extensions = await utils.filterExtensions(
process.env['extensions'] || ''
);
const key: string = process.env['key'] || '';
const script_path = 'extensions.sh';
return (
'bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version
);
}
)
return (
'bash ' + script_path + ' "' + extensions + '" ' + key + ' ' + version
);
})
}));
/**

1931
dist/index.js vendored

File diff suppressed because it is too large Load Diff

9081
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,13 +3,13 @@
"version": "1.5.1",
"private": false,
"description": "Cache extensions in GitHub Actions",
"main": "dist/index.js",
"main": "lib/cache.js",
"scripts": {
"build": "tsc",
"lint": "eslint **/*.ts --cache",
"format": "prettier --write **/*.ts && git add .",
"format-check": "prettier --check **/*.ts",
"release": "ncc build src/cache.ts -o dist && git add -f dist/",
"release": "ncc build -o dist && git add -f dist/",
"test": "jest"
},
"repository": {
@@ -24,26 +24,26 @@
"author": "shivammathur",
"license": "MIT",
"dependencies": {
"@actions/core": "^1.2.6",
"@actions/core": "^1.3.0",
"@actions/exec": "^1.0.4"
},
"devDependencies": {
"@types/jest": "^26.0.20",
"@types/node": "^14.14.34",
"@typescript-eslint/eslint-plugin": "^4.17.0",
"@typescript-eslint/parser": "^4.17.0",
"@zeit/ncc": "^0.22.3",
"eslint": "^7.21.0",
"eslint-config-prettier": "^8.1.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jest": "^24.2.1",
"eslint-plugin-prettier": "^3.3.1",
"@types/jest": "^26.0.23",
"@types/node": "^15.6.1",
"@typescript-eslint/eslint-plugin": "^4.25.0",
"@typescript-eslint/parser": "^4.25.0",
"@vercel/ncc": "^0.28.6",
"eslint": "^7.27.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.23.4",
"eslint-plugin-jest": "^24.3.6",
"eslint-plugin-prettier": "^3.4.0",
"husky": "^4.3.8",
"jest": "^26.6.3",
"jest-circus": "^26.6.3",
"prettier": "^2.2.1",
"ts-jest": "^26.5.3",
"typescript": "^4.2.3"
"jest": "^27.0.3",
"jest-circus": "^27.0.3",
"prettier": "^2.3.0",
"ts-jest": "^27.0.1",
"typescript": "^4.3.2"
},
"husky": {
"skipCI": true,

View File

@@ -50,9 +50,7 @@ get_package_link() {
linux_extension_dir() {
api_version=$1
if [[ "$version" =~ $old_versions ]]; then
echo "/usr/lib/php5/$api_version"
elif [[ "$version" =~ 5.3|$nightly_versions ]]; then
if [[ "$version" =~ $old_versions|$nightly_versions ]]; then
echo "/usr/local/php/$version/lib/php/extensions/no-debug-non-zts-$api_version"
else
echo "/usr/lib/php/$api_version"
@@ -60,9 +58,8 @@ linux_extension_dir() {
}
darwin_extension_dir() {
api_version=$1
old_versions_darwin="5.[3-5]"
if [[ "$version" =~ $old_versions_darwin ]]; then
api_version=$1
if [[ "$version" =~ $old_versions ]]; then
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$api_version"
else
if [[ "$(sysctl -n hw.optional.arm64 2>/dev/null)" == "1" ]]; then
@@ -196,8 +193,9 @@ version=$3
tick="✓"
cross="✗"
os=$(uname -s)
old_versions="5.[4-5]"
old_versions="5.[3-5]"
nightly_versions="8.[1-9]"
date='20210313'
if [ "$os" = "Linux" ]; then
. /etc/lsb-release
os=$os-$DISTRIB_CODENAME
@@ -209,11 +207,13 @@ elif [ "$os" = "Darwin" ]; then
api_version=$(get_api_version)
dir=$(darwin_extension_dir "$api_version")
sudo mkdir -p "$dir" && fix_ownership "$dir"
[[ "$extensions" == *"imagick"* ]] && date='20210622'
else
os="Windows"
dir='C:\\tools\\php\\ext'
[[ "$extensions" == *"imagick"* ]] && date='20210512'
fi
key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2)
key="$key-20210313"
key="$key-$date"
echo "::set-output name=dir::$dir"
echo "::set-output name=key::$key"

View File

@@ -70,15 +70,12 @@ libcgi-fast-perl
libcgi-pm-perl
libcgroup1
libcilkrts5
libclang-common-6.0-dev
libclang-common-8-dev
libclang-common-9-dev
libclang-cpp9
libclang1-6.0
libclang1-8
libclang1-9
libcolord2
libcom-err2
libcommon-sense-perl
libcroco3
libcryptsetup12
libcups2
@@ -153,7 +150,6 @@ libgbm1
libgc1c2
libgcc-10-dev
libgcc-7-dev
libgcc-8-dev
libgcc-9-dev
libgcc-s1
libgcc1
@@ -170,7 +166,6 @@ libgeoip1
libgflags2.2
libgfortran-10-dev
libgfortran-7-dev
libgfortran-8-dev
libgfortran-9-dev
libgfortran4
libgfortran5
@@ -274,7 +269,8 @@ libjs-jquery
libjson-c3
libjson-glib-1.0-0
libjson-glib-1.0-common
libjsoncpp1
libjson-perl
libjson-xs-perl
libjte1
libk5crypto3
libkeyutils1
@@ -291,12 +287,9 @@ liblcms2-dev
libldap-2.4-2
libldap-common
libldb1
liblldb-6.0
liblldb-8
liblldb-9
libllvm10
libllvm6.0
libllvm8
libllvm9
liblmdb0
liblocale-gettext-perl
@@ -639,7 +632,6 @@ libssl1.0.0
libssl1.1
libstdc++-10-dev
libstdc++-7-dev
libstdc++-8-dev
libstdc++-9-dev
libstdc++6
libstemmer0d
@@ -673,6 +665,7 @@ libtommath1
libtool
libtry-tiny-perl
libtsan0
libtypes-serialiser-perl
libu2f-udev
libubsan0
libubsan1

View File

@@ -14,7 +14,6 @@ libapt-pkg6.0
libarchive13
libargon2-1
libaria2-0
libasan4
libasan5
libasan6
libasn1-8-heimdal
@@ -75,16 +74,18 @@ libcc1-0
libcgi-fast-perl
libcgi-pm-perl
libcgroup1
libcilkrts5
libclang-common-10-dev
libclang-common-8-dev
libclang-common-9-dev
libclang-common-11-dev
libclang-common-12-dev
libclang-cpp10
libclang-cpp9
libclang-cpp11
libclang-cpp12
libclang1-10
libclang1-8
libclang1-11
libclang1-12
libcolord2
libcom-err2
libcommon-sense-perl
libcrypt-dev
libcrypt1
libcryptsetup12
@@ -166,8 +167,6 @@ libgbm1
libgc1c2
libgcab-1.0-0
libgcc-10-dev
libgcc-7-dev
libgcc-8-dev
libgcc-9-dev
libgcc-s1
libgconf-2-4
@@ -182,7 +181,6 @@ libgdk-pixbuf2.0-common
libgdk-pixbuf2.0-dev
libgflags2.2
libgfortran-10-dev
libgfortran-8-dev
libgfortran-9-dev
libgfortran5
libgif7
@@ -272,6 +270,8 @@ libjs-xmlextras
libjson-c4
libjson-glib-1.0-0
libjson-glib-1.0-common
libjson-perl
libjson-xs-perl
libjte2
libk5crypto3
libkeyutils1
@@ -288,11 +288,11 @@ liblcms2-dev
libldap-2.4-2
libldap-common
liblldb-10
liblldb-8
liblldb-9
liblldb-11
liblldb-12
libllvm10
libllvm11
libllvm8
libllvm12
libllvm9
liblmdb0
liblocale-gettext-perl
@@ -481,7 +481,6 @@ libmount1
libmpc3
libmpdec2
libmpfr6
libmpx2
libmspack0
libmysqlclient-dev
libmysqlclient21
@@ -515,13 +514,12 @@ libnss-systemd
libnss3
libntfs-3g883
libnuma1
libobjc-8-dev
libobjc-9-dev
libobjc4
libodbc1
libogg0
libomp-10-dev
libomp5-10
libomp-11-dev
libomp5-11
libonig5
libopenexr-dev
libopenexr24
@@ -636,8 +634,6 @@ libssh2-1
libssl-dev
libssl1.1
libstdc++-10-dev
libstdc++-7-dev
libstdc++-8-dev
libstdc++-9-dev
libstdc++6
libstemmer0d
@@ -672,8 +668,8 @@ libtool
libtry-tiny-perl
libtsan0
libtss2-esys0
libtypes-serialiser-perl
libu2f-udev
libubsan0
libubsan1
libuchardet0
libucl1

View File

@@ -15,7 +15,6 @@ libapt-pkg5.0
libarchive13
libargon2-1
libasan2
libasan4
libasan5
libasn1-8-heimdal
libasound2
@@ -76,14 +75,11 @@ libcgi-pm-perl
libcgraph6
libcgroup1
libcilkrts5
libclang-common-6.0-dev
libclang-common-8-dev
libclang-common-9-dev
libclang-cpp9
libclang1-6.0
libclang1-8
libcolord2
libcomerr2
libcommon-sense-perl
libcroco3
libcryptsetup4
libcups2
@@ -154,8 +150,6 @@ libgbm-dev
libgbm1
libgc1c2
libgcc-5-dev
libgcc-7-dev
libgcc-8-dev
libgcc-9-dev
libgcc1
libgconf-2-4
@@ -169,7 +163,6 @@ libgdk-pixbuf2.0-dev
libgeoip1
libgflags2v5
libgfortran-5-dev
libgfortran-8-dev
libgfortran-9-dev
libgfortran3
libgfortran5
@@ -260,7 +253,8 @@ libjs-jquery
libjson-c2
libjson-glib-1.0-0
libjson-glib-1.0-common
libjsoncpp1
libjson-perl
libjson-xs-perl
libjte1
libk5crypto3
libkeyutils1
@@ -276,11 +270,8 @@ liblcms2-2
liblcms2-dev
libldap-2.4-2
libldb1
liblldb-6.0
liblldb-8
liblldb-9
libllvm6.0
libllvm8
libllvm9
liblmdb0
liblocale-gettext-perl
@@ -474,7 +465,6 @@ libmpc3
libmpdec2
libmpfr4
libmpx0
libmpx2
libmspack0
libmysqlclient-dev
libmysqlclient20
@@ -617,8 +607,6 @@ libssl-doc
libssl1.0.0
libssl1.1
libstdc++-5-dev
libstdc++-7-dev
libstdc++-8-dev
libstdc++-9-dev
libstdc++6
libstemmer0d
@@ -650,6 +638,7 @@ libtinyxml2-2v5
libtk8.6
libtool
libtsan0
libtypes-serialiser-perl
libubsan0
libubsan1
libucl1

View File

@@ -1,63 +1,18 @@
{
"compilerOptions": {
/* Basic Options */
// "incremental": true, /* Enable incremental compilation */
"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'. */
// "allowJs": true, /* Allow javascript files to be compiled. */
// "checkJs": true, /* Report errors in .js files. */
// "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
// "declaration": true, /* Generates corresponding '.d.ts' file. */
// "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
// "sourceMap": true, /* Generates corresponding '.map' file. */
// "outFile": "./", /* Concatenate and emit output to single file. */
"outDir": "./lib", /* Redirect output structure to the directory. */
"rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
// "composite": true, /* Enable project compilation */
// "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
// "removeComments": true, /* Do not emit comments to output. */
// "noEmit": true, /* Do not emit outputs. */
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
// "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
/* Strict Type-Checking Options */
"strict": true, /* Enable all strict type-checking options. */
// "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* Enable strict null checks. */
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
// "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
// "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
// "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
// "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
/* Additional Checks */
// "noUnusedLocals": true, /* Report errors on unused locals. */
// "noUnusedParameters": true, /* Report errors on unused parameters. */
// "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
// "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Type declaration files to be included in compilation. */
// "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
// "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
/* Source Map Options */
// "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
// "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
// "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
// "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
/* Experimental Options */
// "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
"esModuleInterop": true,
"lib": [
"ESNext"
],
"module": "commonjs",
"moduleResolution": "node",
"noImplicitAny": true,
"outDir": "./lib",
"removeComments": true,
"rootDir": "./src",
"sourceMap": true,
"strict": true,
"target": "ESNext"
},
"exclude": ["node_modules", "**/*.test.ts"]
"exclude": ["__tests__", "lib", "node_modules"]
}