Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08cc68f7fa | ||
|
|
6efc9a6099 | ||
|
|
ac570d4c61 | ||
|
|
7afb25fd18 |
12
README.md
12
README.md
@@ -65,13 +65,13 @@ jobs:
|
|||||||
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
||||||
env:
|
env:
|
||||||
extensions: intl, pcov
|
extensions: intl, pcov
|
||||||
key: cache # can be any string
|
key: cache-v1 # can be any string, change to clear the extension cache.
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
- name: Setup cache environment
|
- name: Setup cache environment
|
||||||
id: cache-extensions
|
id: cache-env
|
||||||
uses: shivammathur/cache-extensions@v1
|
uses: shivammathur/cache-extensions@v1
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
@@ -81,14 +81,14 @@ jobs:
|
|||||||
- name: Cache extensions
|
- name: Cache extensions
|
||||||
uses: actions/cache@v1
|
uses: actions/cache@v1
|
||||||
with:
|
with:
|
||||||
path: ${{ steps.cache-extensions.outputs.ext_dir }}
|
path: ${{ steps.cache-env.outputs.dir }}
|
||||||
key: ${{ runner.os }}-ext-${{ matrix.php-versions }}-${{ steps.cache-extensions.outputs.ext_hash }}
|
key: ${{ steps.cache-env.outputs.key }}
|
||||||
restore-keys: ${{ runner.os }}-ext-${{ matrix.php-versions }}-${{ steps.cache-extensions.outputs.ext_hash }}
|
restore-keys: ${{ steps.cache-env.outputs.key }}
|
||||||
|
|
||||||
- name: Setup PHP
|
- name: Setup PHP
|
||||||
uses: shivammathur/setup-php@v2
|
uses: shivammathur/setup-php@v2
|
||||||
with:
|
with:
|
||||||
php-version: ${{ matrix.php-versions }}
|
php-version: ${{ matrix.php-versions }}
|
||||||
extensions: ${{ env.extensions }}
|
extensions: ${{ env.extensions }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
3
dist/index.js
vendored
3
dist/index.js
vendored
@@ -1550,7 +1550,8 @@ const utils = __importStar(__webpack_require__(163));
|
|||||||
function run() {
|
function run() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
try {
|
try {
|
||||||
const version = yield utils.getInput('php-version', true);
|
let version = yield utils.getInput('php-version', true);
|
||||||
|
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
||||||
const extensions = yield utils.getInput('extensions', true);
|
const extensions = yield utils.getInput('extensions', true);
|
||||||
const key = yield 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');
|
||||||
|
|||||||
28
package-lock.json
generated
28
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "cache-extensions",
|
"name": "cache-extensions",
|
||||||
"version": "0.0.1",
|
"version": "1.0.1",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -584,9 +584,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/babel__core": {
|
"@types/babel__core": {
|
||||||
"version": "7.1.3",
|
"version": "7.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.4.tgz",
|
||||||
"integrity": "sha512-8fBo0UR2CcwWxeX7WIIgJ7lXjasFxoYgRnFHUj+hRvKkpiBJbxhdAPTCY6/ZKM0uxANFVzt4yObSLuTiTnazDA==",
|
"integrity": "sha512-c/5MuRz5HM4aizqL5ViYfW4iEnmfPcfbH4Xa6GgLT21dMc1NGeNnuS6egHheOmP+kCJ9CAzC4pv4SDCWTnRkbg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/parser": "^7.1.0",
|
"@babel/parser": "^7.1.0",
|
||||||
@@ -1324,9 +1324,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"compare-versions": {
|
"compare-versions": {
|
||||||
"version": "3.5.1",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz",
|
||||||
"integrity": "sha512-9fGPIB7C6AyM18CJJBHt5EnCZDG3oiTJYy0NjfIAGjKpzv0tkxWko7TNQHF5ymqm7IH03tqmeuBxtvD+Izh6mg==",
|
"integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"component-emitter": {
|
"component-emitter": {
|
||||||
@@ -2198,9 +2198,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"figures": {
|
"figures": {
|
||||||
"version": "3.1.0",
|
"version": "3.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
|
||||||
"integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==",
|
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"escape-string-regexp": "^1.0.5"
|
"escape-string-regexp": "^1.0.5"
|
||||||
@@ -4384,13 +4384,13 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"prompts": {
|
"prompts": {
|
||||||
"version": "2.3.0",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.1.tgz",
|
||||||
"integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==",
|
"integrity": "sha512-qIP2lQyCwYbdzcqHIUi2HAxiWixhoM9OdLCWf8txXsapC/X9YdsCoeyRIXE/GP+Q0J37Q7+XN/MFqbUa7IzXNA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"kleur": "^3.0.3",
|
"kleur": "^3.0.3",
|
||||||
"sisteransi": "^1.0.3"
|
"sisteransi": "^1.0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"psl": {
|
"psl": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "cache-extensions",
|
"name": "cache-extensions",
|
||||||
"version": "0.0.1",
|
"version": "1.0.1",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "Cache extensions in GitHub Actions",
|
"description": "Cache extensions in GitHub Actions",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ import * as utils from './utils';
|
|||||||
*/
|
*/
|
||||||
export async function run(): Promise<void> {
|
export async function run(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const version: string = await utils.getInput('php-version', true);
|
let version: string = await utils.getInput('php-version', true);
|
||||||
|
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
||||||
const extensions: string = await utils.getInput('extensions', true);
|
const extensions: string = await utils.getInput('extensions', true);
|
||||||
const key: string = await utils.getInput('key', true);
|
const key: string = await utils.getInput('key', true);
|
||||||
const script_path: string = path.join(__dirname, '../src/extensions.sh');
|
const script_path: string = path.join(__dirname, '../src/extensions.sh');
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
linux_extension_dir() {
|
linux_extension_dir() {
|
||||||
apiv=$1
|
apiv=$1
|
||||||
|
old_versions_linux="5.[4-5]"
|
||||||
if [ "$version" = "5.3" ]; then
|
if [ "$version" = "5.3" ]; then
|
||||||
echo "/home/runner/php/5.3.29/lib/php/extensions/no-debug-non-zts-$apiv"
|
echo "/home/runner/php/5.3.29/lib/php/extensions/no-debug-non-zts-$apiv"
|
||||||
elif [[ "$version" =~ $old_versions_linux ]]; then
|
elif [[ "$version" =~ $old_versions_linux ]]; then
|
||||||
@@ -13,6 +14,7 @@ linux_extension_dir() {
|
|||||||
|
|
||||||
darwin_extension_dir() {
|
darwin_extension_dir() {
|
||||||
apiv=$1
|
apiv=$1
|
||||||
|
old_versions_darwin="5.[3-5]"
|
||||||
if [[ "$version" =~ $old_versions_darwin ]]; then
|
if [[ "$version" =~ $old_versions_darwin ]]; then
|
||||||
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$apiv"
|
echo "/opt/local/lib/php${version/./}/extensions/no-debug-non-zts-$apiv"
|
||||||
else
|
else
|
||||||
@@ -22,30 +24,14 @@ darwin_extension_dir() {
|
|||||||
|
|
||||||
get_apiv() {
|
get_apiv() {
|
||||||
case $version in
|
case $version in
|
||||||
5.3)
|
5.3) echo "20090626" ;;
|
||||||
echo "20090626"
|
5.4) echo "20100525" ;;
|
||||||
;;
|
5.5) echo "20121212" ;;
|
||||||
5.4)
|
5.6) echo "20131226" ;;
|
||||||
echo "20100525"
|
7.0) echo "20151012" ;;
|
||||||
;;
|
7.1) echo "20160303" ;;
|
||||||
5.5)
|
7.2) echo "20170718" ;;
|
||||||
echo "20121212"
|
7.3) echo "20180731" ;;
|
||||||
;;
|
|
||||||
5.6)
|
|
||||||
echo "20131226"
|
|
||||||
;;
|
|
||||||
7.0)
|
|
||||||
echo "20151012"
|
|
||||||
;;
|
|
||||||
7.1)
|
|
||||||
echo "20160303"
|
|
||||||
;;
|
|
||||||
7.2)
|
|
||||||
echo "20170718"
|
|
||||||
;;
|
|
||||||
7.3)
|
|
||||||
echo "20180731"
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
if [ "$version" = "8.0" ]; then
|
if [ "$version" = "8.0" ]; then
|
||||||
php_h="https://raw.githubusercontent.com/php/php-src/master/main/php.h"
|
php_h="https://raw.githubusercontent.com/php/php-src/master/main/php.h"
|
||||||
@@ -59,21 +45,21 @@ get_apiv() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
version=$2
|
version=$2
|
||||||
old_versions_linux="5.[4-5]"
|
extensions=$1
|
||||||
old_versions_darwin="5.[3-5]"
|
|
||||||
os=$(uname -s)
|
os=$(uname -s)
|
||||||
if [ "$os" = "Linux" ]; then
|
if [ "$os" = "Linux" ]; then
|
||||||
flags='-Po'
|
flags='-Po'
|
||||||
apiv=$(get_apiv)
|
apiv=$(get_apiv)
|
||||||
dir=$(linux_extension_dir "$apiv")
|
dir=$(linux_extension_dir "$apiv")
|
||||||
sudo mkdir -p "$dir" && sudo chown -R "$USER":"$(id -g -n)" $(dirname "$dir")
|
sudo mkdir -p "$dir" && sudo chown -R "$USER":"$(id -g -n)" "$(dirname "$dir")"
|
||||||
elif [ "$os" = "Darwin" ]; then
|
elif [ "$os" = "Darwin" ]; then
|
||||||
flags='-Eo'
|
flags='-Eo'
|
||||||
apiv=$(get_apiv)
|
apiv=$(get_apiv)
|
||||||
dir=$(darwin_extension_dir "$apiv")
|
dir=$(darwin_extension_dir "$apiv")
|
||||||
else
|
else
|
||||||
|
os="Windows"
|
||||||
dir='C:\\tools\\php\\ext'
|
dir='C:\\tools\\php\\ext'
|
||||||
fi
|
fi
|
||||||
hash=$(echo -n "$1" | openssl dgst -sha256 | cut -d ' ' -f 2)
|
key="$os"-ext-"$version"-$(echo -n "$extensions" | openssl dgst -sha256 | cut -d ' ' -f 2)
|
||||||
echo "::set-output name=ext_dir::$dir"
|
echo "::set-output name=dir::$dir"
|
||||||
echo "::set-output name=ext_hash::$hash"
|
echo "::set-output name=key::$key"
|
||||||
Reference in New Issue
Block a user