From 7afb25fd1890fa38ffdd06b626d241a43db436b4 Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Fri, 14 Feb 2020 13:53:09 +0530 Subject: [PATCH] Simplify inputs --- README.md | 12 ++++++------ package-lock.json | 2 +- package.json | 2 +- src/extensions.sh | 46 ++++++++++++++++------------------------------ 4 files changed, 24 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 833797d..4044091 100644 --- a/README.md +++ b/README.md @@ -65,13 +65,13 @@ jobs: name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }} env: extensions: intl, pcov - key: cache # can be any string + key: cache-v1 # can be any string, change to clear the extension cache. steps: - name: Checkout uses: actions/checkout@v2 - name: Setup cache environment - id: cache-extensions + id: cache-env uses: shivammathur/cache-extensions@v1 with: php-version: ${{ matrix.php-versions }} @@ -81,14 +81,14 @@ jobs: - name: Cache extensions uses: actions/cache@v1 with: - path: ${{ steps.cache-extensions.outputs.ext_dir }} - key: ${{ runner.os }}-ext-${{ matrix.php-versions }}-${{ steps.cache-extensions.outputs.ext_hash }} - restore-keys: ${{ runner.os }}-ext-${{ matrix.php-versions }}-${{ steps.cache-extensions.outputs.ext_hash }} + path: ${{ steps.cache-env.outputs.dir }} + key: ${{ steps.cache-env.outputs.key }} + restore-keys: ${{ steps.cache-env.outputs.key }} - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: ${{ matrix.php-versions }} + php-version: ${{ matrix.php-versions }} extensions: ${{ env.extensions }} ``` diff --git a/package-lock.json b/package-lock.json index f769469..edfce69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cache-extensions", - "version": "0.0.1", + "version": "1.0.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index dde9676..26c189a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cache-extensions", - "version": "0.0.1", + "version": "1.0.0", "private": false, "description": "Cache extensions in GitHub Actions", "main": "dist/index.js", diff --git a/src/extensions.sh b/src/extensions.sh index 9dc8d26..7c3ac6e 100644 --- a/src/extensions.sh +++ b/src/extensions.sh @@ -1,5 +1,6 @@ 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 @@ -13,6 +14,7 @@ linux_extension_dir() { darwin_extension_dir() { apiv=$1 + 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 @@ -22,30 +24,14 @@ darwin_extension_dir() { get_apiv() { case $version in - 5.3) - echo "20090626" - ;; - 5.4) - echo "20100525" - ;; - 5.5) - echo "20121212" - ;; - 5.6) - echo "20131226" - ;; - 7.0) - echo "20151012" - ;; - 7.1) - echo "20160303" - ;; - 7.2) - echo "20170718" - ;; - 7.3) - echo "20180731" - ;; + 5.3) echo "20090626" ;; + 5.4) echo "20100525" ;; + 5.5) echo "20121212" ;; + 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 php_h="https://raw.githubusercontent.com/php/php-src/master/main/php.h" @@ -59,21 +45,21 @@ get_apiv() { } version=$2 -old_versions_linux="5.[4-5]" -old_versions_darwin="5.[3-5]" +extensions=$1 os=$(uname -s) if [ "$os" = "Linux" ]; then flags='-Po' apiv=$(get_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 flags='-Eo' apiv=$(get_apiv) dir=$(darwin_extension_dir "$apiv") else + os="Windows" dir='C:\\tools\\php\\ext' fi -hash=$(echo -n "$1" | openssl dgst -sha256 | cut -d ' ' -f 2) -echo "::set-output name=ext_dir::$dir" -echo "::set-output name=ext_hash::$hash" \ No newline at end of file +key="$os"-ext-"$version"-$(echo -n "$extensions" | openssl dgst -sha256 | cut -d ' ' -f 2) +echo "::set-output name=dir::$dir" +echo "::set-output name=key::$key" \ No newline at end of file