93 Commits
1.6.2 ... v1

Author SHA1 Message Date
github-actions[bot]
d622719c5f Updating lists 2023-11-20 15:04:20 +00:00
github-actions[bot]
bb415ca8c6 Updating lists 2023-11-19 15:04:00 +00:00
github-actions[bot]
863787aaca Updating lists 2023-11-18 15:03:55 +00:00
github-actions[bot]
b44eafb2c0 Updating lists 2023-11-07 15:04:00 +00:00
github-actions[bot]
a8d07a7ebe Updating lists 2023-10-26 15:04:16 +00:00
Shivam Mathur
844d1f1ac9 Merge pull request #36 from shivammathur/dependabot/npm_and_yarn/babel/traverse-7.23.2
Bump @babel/traverse from 7.19.4 to 7.23.2
2023-10-18 15:51:20 +05:30
dependabot[bot]
3b1bb85fc9 Bump @babel/traverse from 7.19.4 to 7.23.2
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.19.4 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-18 10:18:26 +00:00
github-actions[bot]
d776e47f06 Updating lists 2023-09-28 15:04:23 +00:00
github-actions[bot]
23e13768c5 Updating lists 2023-09-27 15:04:38 +00:00
github-actions[bot]
03b30f7d9f Updating lists 2023-09-26 15:04:17 +00:00
github-actions[bot]
cfc6bab678 Updating lists 2023-09-14 15:04:38 +00:00
github-actions[bot]
e8283f3a29 Updating lists 2023-08-10 15:04:30 +00:00
Shivam Mathur
e303256c08 Update Node.js dependenices
Bump version to 1.10.0
2023-07-29 22:37:26 +05:30
Shivam Mathur
63adf40f8c Try to fix packages before installing libraries 2023-07-29 22:33:18 +05:30
github-actions[bot]
7d0d256df1 Updating lists 2023-06-22 15:04:14 +00:00
github-actions[bot]
f6bffb2308 Updating lists 2023-05-19 15:04:12 +00:00
Shivam Mathur
5e752a9c57 Merge pull request #31 from shivammathur/dependabot/npm_and_yarn/xml2js-and-azure/ms-rest-js-and-azure/storage-blob-0.5.0
Bump xml2js, @azure/ms-rest-js and @azure/storage-blob
2023-04-17 07:36:39 +05:30
dependabot[bot]
a0de9172f2 Bump xml2js, @azure/ms-rest-js and @azure/storage-blob
Bumps [xml2js](https://github.com/Leonidas-from-XIV/node-xml2js), [@azure/ms-rest-js](https://github.com/Azure/ms-rest-js) and [@azure/storage-blob](https://github.com/Azure/azure-sdk-for-js). These dependencies needed to be updated together.

Updates `xml2js` from 0.4.23 to 0.5.0
- [Release notes](https://github.com/Leonidas-from-XIV/node-xml2js/releases)
- [Commits](https://github.com/Leonidas-from-XIV/node-xml2js/commits/0.5.0)

Updates `@azure/ms-rest-js` from 2.6.1 to 2.6.6
- [Release notes](https://github.com/Azure/ms-rest-js/releases)
- [Changelog](https://github.com/Azure/ms-rest-js/blob/master/Changelog.md)
- [Commits](https://github.com/Azure/ms-rest-js/commits)

Updates `@azure/storage-blob` from 12.10.0 to 12.14.0
- [Release notes](https://github.com/Azure/azure-sdk-for-js/releases)
- [Changelog](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/Changelog-for-next-generation.md)
- [Commits](https://github.com/Azure/azure-sdk-for-js/compare/@azure/storage-blob_12.10.0...@azure/storage-blob_12.14.0)

---
updated-dependencies:
- dependency-name: xml2js
  dependency-type: indirect
- dependency-name: "@azure/ms-rest-js"
  dependency-type: indirect
- dependency-name: "@azure/storage-blob"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 01:49:18 +00:00
Shivam Mathur
5c19332f87 Bump version to 1.9.1
Add support for php-version-file

Update Node.js dependencies
2023-04-17 07:17:34 +05:30
Shivam Mathur
c8177cca56 Drop support for ubuntu 18.04 2023-04-04 15:07:22 +00:00
github-actions[bot]
15d69f21b8 Updating lists 2023-02-09 15:04:15 +00:00
Shivam Mathur
e13a77655f Happy new year 🎉 [skip ci] 2023-02-09 12:57:05 +05:30
github-actions[bot]
680ac6a4c1 Updating lists 2023-01-29 03:23:52 +00:00
Shivam Mathur
b433d435c1 Add PHP 8.3 to the README 2023-01-29 03:41:20 +05:30
Shivam Mathur
d6a8ec7cfb Merge pull request #30 from danepowell/cache-v3
use cache@v3
2023-01-24 21:28:43 +05:30
Dane Powell
41dbe75153 use cache@v3 2023-01-24 07:48:02 -08:00
github-actions[bot]
dafd61109e Updating lists 2023-01-20 15:04:21 +00:00
github-actions[bot]
581f023de0 Updating lists 2023-01-19 15:04:22 +00:00
github-actions[bot]
56ea88f536 Updating lists 2023-01-14 15:04:08 +00:00
github-actions[bot]
1970264699 Updating lists 2023-01-12 15:06:56 +00:00
github-actions[bot]
e119b54661 Updating lists 2023-01-11 15:07:15 +00:00
Shivam Mathur
efbaf97d0a Merge pull request #29 from shivammathur/dependabot/npm_and_yarn/json5-1.0.2
Bump json5 from 1.0.1 to 1.0.2
2023-01-08 17:16:40 +05:30
dependabot[bot]
a8ecef19ac Bump json5 from 1.0.1 to 1.0.2
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-08 06:57:19 +00:00
Shivam Mathur
bb222c3f18 Update README 2022-12-26 03:53:52 +05:30
github-actions[bot]
aedfae77ea Updating lists 2022-12-22 15:04:41 +00:00
github-actions[bot]
ad807e7d2c Updating lists 2022-12-15 15:04:37 +00:00
Shivam Mathur
38fa3d98ee Fix package regex in linux.sh 2022-12-11 03:40:02 +05:30
github-actions[bot]
861c58f080 Updating lists 2022-12-01 15:04:37 +00:00
github-actions[bot]
2ac4a0798e Updating lists 2022-11-24 15:04:13 +00:00
github-actions[bot]
021b07a2b2 Updating lists 2022-11-17 15:04:39 +00:00
github-actions[bot]
dc54f0353a Updating lists 2022-11-16 15:04:44 +00:00
github-actions[bot]
fd65aac1a3 Updating lists 2022-11-13 15:04:57 +00:00
github-actions[bot]
1dd1fede85 Updating lists 2022-11-03 15:05:44 +00:00
github-actions[bot]
f453437052 Updating lists 2022-10-27 15:04:43 +00:00
Shivam Mathur
813b6608e7 Update actions 2022-10-12 17:03:25 +05:30
Shivam Mathur
10843c9071 Bump version to 1.9.0
Bump Node.js dependencies
2022-10-12 16:51:25 +05:30
Shivam Mathur
db6bf65bd9 Switch to $GITHUB_OUTPUT 2022-10-12 16:44:36 +05:30
Shivam Mathur
d33ccd80be Add brew to PATH 2022-09-26 15:21:48 +00:00
github-actions[bot]
46aa274405 Updating lists 2022-09-07 15:05:11 +00:00
Shivam Mathur
9e9ad0fe5f Fix typo in ln command in darwin.sh 2022-09-05 17:35:22 +05:30
Shivam Mathur
f23390933a Remove ca-certificates formula update workaround 2022-09-05 17:28:11 +05:30
Shivam Mathur
c64a1a91b0 Manually link brew libraries on failure 2022-09-05 17:27:11 +05:30
Shivam Mathur
7e3a83aacd Add uses_from_macos libraries in cache on macOS 2022-09-02 16:55:46 +05:30
Shivam Mathur
c157badb12 Reset cache date to 20220831 2022-08-31 18:22:10 +05:30
Shivam Mathur
b47f0a89fb Bump version to 1.8.2
Bump Node.js dependencies
2022-08-30 14:43:45 +05:30
Shivam Mathur
58311d5340 Fix regex in check for valid package names 2022-08-30 14:36:45 +05:30
Shivam Mathur
55034917ed Use dpkg --print-architecture 2022-08-30 14:27:37 +05:30
github-actions[bot]
114c7bf40c Updating lists 2022-08-30 08:39:14 +00:00
Shivam Mathur
567dc865bb Add check for valid package names 2022-08-30 13:38:54 +05:30
Shivam Mathur
4f05196702 Bump version to 1.8.1 2022-08-19 06:03:29 +05:30
github-actions[bot]
ca0d32e2b6 Updating lists 2022-07-26 15:05:17 +00:00
github-actions[bot]
9e26d5f265 Updating lists 2022-07-19 15:11:26 +00:00
github-actions[bot]
9e71412838 Updating lists 2022-07-15 19:24:14 +00:00
github-actions[bot]
b75ff681db Updating lists 2022-07-12 15:08:02 +00:00
github-actions[bot]
bbf97e5a63 Updating lists 2022-07-11 15:15:18 +00:00
github-actions[bot]
c594f79a40 Updating lists 2022-07-05 10:05:22 +00:00
github-actions[bot]
88dd43cc51 Updating lists 2022-06-02 15:05:32 +00:00
Shivam Mathur
b9595b0dae Create deps directory in RUNNER_TOOL_CACHE 2022-05-30 13:40:39 +05:30
Shivam Mathur
d6ac7eb3e1 Check for dependency directory before saving cache 2022-05-30 13:25:36 +05:30
Shivam Mathur
845ca860fc Bump version to 1.8.0 2022-05-30 11:18:37 +05:30
github-actions[bot]
67605e7cb2 Updating lists 2022-05-30 05:41:41 +00:00
Shivam Mathur
a96cc5f73c Add support for ubuntu-22.04 2022-05-30 11:07:44 +05:30
github-actions[bot]
111a9ae78c Updating lists 2022-05-24 13:52:44 +00:00
github-actions[bot]
51ce802077 Updating lists 2022-04-07 15:13:17 +00:00
github-actions[bot]
6f1e8c47b9 Updating lists 2022-04-06 15:13:20 +00:00
github-actions[bot]
0a28ecc62d Updating lists 2022-04-04 15:08:21 +00:00
Shivam Mathur
257e3c93fb Handle cache errors 2022-03-22 10:31:41 +05:30
Shivam Mathur
f1c2fee180 Clear cache for mongodb and http on macOS 2022-03-04 07:01:05 +05:30
Shivam Mathur
bc065e2169 Bump actions/checkout to v3 2022-03-02 03:16:14 +00:00
Shivam Mathur
f77feb6ec0 Bump Node.js dependencies 2022-03-01 21:06:18 +05:30
Shivam Mathur
850e46eba6 Reset cache for vips on macOS 2022-02-24 23:25:53 +05:30
Shivam Mathur
fe198edd1a Bump version to 1.7.1 2022-02-10 06:54:20 +05:30
Shivam Mathur
9c9aa7fd23 Improve node tests workflow 2022-02-10 06:47:30 +05:30
Shivam Mathur
24eb15e5fa Fix import in cache.test.ts 2022-02-10 06:42:53 +05:30
Shivam Mathur
2f6e2f662c Add CodeQL workflow 2022-02-10 06:38:32 +05:30
Shivam Mathur
a4da3200ee Update Node.js dependencies 2022-02-10 06:38:32 +05:30
github-actions[bot]
959ba21b72 Updating lists 2022-01-18 15:14:29 +00:00
Shivam Mathur
5f06df1e0f Happy new year [skip ci] 2022-01-02 08:52:17 +00:00
Shivam Mathur
0d8f2cf62b Refactor workflows 2021-12-17 18:27:03 +05:30
Shivam Mathur
03f7f56b30 Bump Node version to 16.x 2021-12-17 18:27:03 +05:30
Shivam Mathur
79c4acf033 Add npm release workflow 2021-12-17 18:27:02 +05:30
Shivam Mathur
a173299cf0 Bump version to 1.7.0 2021-12-17 18:26:20 +05:30
Shivam Mathur
b0f769600b Add repo, workflow and job in cache key
Reset cache date
2021-12-17 09:53:59 +00:00
21 changed files with 16869 additions and 13106 deletions

View File

@@ -0,0 +1,4 @@
name : CodeQL Configuration
paths:
- './src'

25
.github/workflows/codeql.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: CodeQL Workflow
on:
workflow_dispatch:
schedule:
- cron: '0 15 * * 6'
jobs:
codeql:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
config-file: ./.github/codeql/codeql-configuration.yml
languages: javascript
- name: Autobuild
uses: github/codeql-action/autobuild@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View File

@@ -1,4 +1,4 @@
name: Release workflow name: Git release workflow
on: on:
workflow_dispatch: workflow_dispatch:
schedule: schedule:
@@ -10,14 +10,14 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ubuntu-20.04, ubuntu-18.04] os: [ubuntu-22.04, ubuntu-20.04]
steps: steps:
- name: Update lists - name: Update lists
run: | run: |
. /etc/os-release . /etc/os-release
dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }' | sed 's/:amd64//' > /tmp/"$VERSION_CODENAME"-libs dpkg -l | awk '($1 == "ii") && ($2 ~ /^lib|lib$/) { print $2 }' | sed 's/:amd64//' > /tmp/"$VERSION_CODENAME"-libs
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v3
with: with:
name: lists name: lists
path: | path: |
@@ -29,15 +29,17 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v3
with: with:
ref: develop ref: develop
fetch-depth: 0 fetch-depth: 0
- name: Download lists - name: Download lists
uses: actions/download-artifact@v2 uses: actions/download-artifact@v3
with: with:
name: lists name: lists
path: src/lists path: src/lists
- name: Add brew to PATH
run: echo "/home/linuxbrew/.linuxbrew/bin" >> $GITHUB_PATH
- name: Update darwin extensions list - name: Update darwin extensions list
run: | run: |
brew tap shivammathur/extensions brew tap shivammathur/extensions

61
.github/workflows/node-release.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
name: Node release workflow
on:
release:
types: [created]
workflow_dispatch:
inputs:
skip:
description: Skip release to repository
required: false
tag:
description: Tag name
required: true
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout release
if: github.event_name != 'workflow_dispatch'
uses: actions/checkout@v3
- name: Checkout tag
uses: actions/checkout@v3
if: github.event_name == 'workflow_dispatch'
with:
ref: ${{ github.event.inputs.tag }}
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '16.x'
registry-url: https://registry.npmjs.org
- name: Install dependencies and add lib
run: |
npm install
npm run build
sed -i -e '/lib\//d' .gitignore
- name: Publish to NPM
if: "!contains(github.event.inputs.skip, 'skip-npm')"
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Change to GitHub Packages registry
uses: actions/setup-node@v3
with:
registry-url: https://npm.pkg.github.com
scope: '@shivammathur'
- name: Patch package.json
run: |
sed -i 's#"name": "#"name": "@shivammathur/#' package.json
- name: Publish to GitHub Packages
if: "!contains(github.event.inputs.skip, 'skip-github-packages')"
run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

41
.github/workflows/node-test.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Node test workflow
on: [push, pull_request]
jobs:
run:
name: Run
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Setup Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
- name: Install dependencies
run: npm install
- name: Prettier Format Check
run: npm run format-check
- name: ESLint Check
run: npm run lint
- name: Run npm audit
run: npm audit
- name: Send Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage/lcov.info
name: github-actions-codecov-${{ matrix.operating-system }}
fail_ci_if_error: false
verbose: true

View File

@@ -1,31 +0,0 @@
name: Main workflow
on: [push, pull_request]
jobs:
run:
name: Run
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Node.js 12.x
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Install dependencies
run: npm install
- name: Prettier Format Check
run: npm run format-check
- name: ESLint Check
run: npm run lint
- name: Run tests
run: npm test
- name: Send Coverage
continue-on-error: true
timeout-minutes: 1
run: curl -s https://codecov.io/bash | bash -s -- -t ${{secrets.CODECOV_TOKEN}} -f coverage/clover.xml -n github-actions-codecov-${{ matrix.operating-system }}-php${{ matrix.php-versions }}

View File

@@ -1,7 +1,7 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2020 shivammathur and contributors Copyright (c) 2020-2023 shivammathur and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@@ -4,7 +4,7 @@
<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://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://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?logo=open%20source%20initiative&logoColor=white&labelColor=555555"></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.2-777bb3.svg?logo=php&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.3-777bb3.svg?logo=php&logoColor=white&labelColor=555555"></a>
</p> </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 for details and example workflow. 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.
@@ -37,18 +37,19 @@ Cache PHP extensions in [GitHub Actions](https://github.com/features/actions "Gi
|7.4|`Stable`|`Security fixes only`| |7.4|`Stable`|`Security fixes only`|
|8.0|`Stable`|`Active`| |8.0|`Stable`|`Active`|
|8.1|`Stable`|`Active`| |8.1|`Stable`|`Active`|
|8.2|`Nightly`|`In development`| |8.2|`Stable`|`Active`|
|8.3|`Nightly`|`In development`|
## :cloud: OS/Platform Support ## :cloud: OS/Platform Support
| Virtual environment | YAML workflow label | | Virtual environment | YAML workflow label |
|--- |--- | |----------------------|------------------------------------|
| Ubuntu 22.04 | `ubuntu-22.04` |
| Ubuntu 20.04 | `ubuntu-latest` or `ubuntu-20.04` | | Ubuntu 20.04 | `ubuntu-latest` or `ubuntu-20.04` |
|Ubuntu 18.04|`ubuntu-18.04`|
| Windows Server 2022 | `windows-2022` | | Windows Server 2022 | `windows-2022` |
| Windows Server 2019 | `windows-latest` or `windows-2019` | | Windows Server 2019 | `windows-latest` or `windows-2019` |
|macOS Catalina 10.15|`macos-latest` or `macOS-10.15`| | macOS Big Sur 12.x | `macOS-12` |
|macOS Big Sur 11.x|`macOS-11`| | macOS Big Sur 11.x | `macos-latest` or `macOS-11` |
## :memo: Usage ## :memo: Usage
@@ -56,14 +57,23 @@ Use this GitHub Action when the extensions you are adding in [setup-php](https:/
### Inputs ### Inputs
#### `php-version` (required) #### `php-version` (optional)
- Specify the PHP version you want to set up. - Specify the PHP version you want to set up.
- Accepts a `string`. For example `'8.1'`. - Accepts a `string`. For example `'8.0'`.
- Accepts `latest` to set up the latest stable PHP version. - Accepts `latest` to set up the latest stable PHP version.
- Accepts `nightly` to set up a nightly build from the master branch of PHP. - Accepts `nightly` to set up a nightly build from the master branch of PHP.
- Accepts the format `d.x`, where `d` is the major version. For example `5.x`, `7.x` and `8.x`. - Accepts the format `d.x`, where `d` is the major version. For example `5.x`, `7.x` and `8.x`.
- See [PHP support](#tada-php-support) for supported PHP versions. - See [PHP support](#tada-php-support) for the supported PHP versions.
- If not specified, it looks for `php-version-file` input.
#### `php-version-file` (optional)
- Specify a file with the PHP version you want to set up.
- Accepts a `string`. For example `'.phpenv-version'`.
- See [PHP support](#tada-php-support) for the supported PHP versions.
- By default, `.php-version` file is used.
- If not specified and the default `.php-version` file is not found, the latest stable PHP version is set up.
#### `extensions` (required) #### `extensions` (required)
@@ -90,14 +100,14 @@ jobs:
strategy: strategy:
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] operating-system: [ubuntu-latest, windows-latest, macos-latest]
php-versions: ['7.4', '8.0', '8.1'] php-versions: ['8.0', '8.1', '8.2', '8.3']
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-v1 # can be any string, change to clear the extension cache. 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@v3
- name: Setup cache environment - name: Setup cache environment
id: extcache id: extcache
@@ -108,7 +118,7 @@ jobs:
key: ${{ env.key }} key: ${{ env.key }}
- name: Cache extensions - name: Cache extensions
uses: actions/cache@v2 uses: actions/cache@v3
with: with:
path: ${{ steps.extcache.outputs.dir }} path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }} key: ${{ steps.extcache.outputs.key }}
@@ -123,11 +133,11 @@ jobs:
### Thread Safe Setup ### 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. If you set up both `TS` and `NTS` PHP versions on `Ubuntu` or `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 ```yaml
- name: Cache extensions - name: Cache extensions
uses: actions/cache@v2 uses: actions/cache@v3
with: with:
path: ${{ steps.extcache.outputs.dir }} path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}-${{ env.phpts }} key: ${{ steps.extcache.outputs.key }}-${{ env.phpts }}

View File

@@ -1,4 +1,4 @@
import path from 'path'; import * as path from 'path';
import * as spu from 'setup-php/lib/utils'; import * as spu from 'setup-php/lib/utils';
import * as cache from '../src/cache'; import * as cache from '../src/cache';
import * as utils from '../src/utils'; import * as utils from '../src/utils';

View File

@@ -6,8 +6,11 @@ branding:
icon: 'box' icon: 'box'
inputs: inputs:
php-version: php-version:
description: 'PHP version you are setting up.' description: 'Setup PHP version.'
required: true required: false
php-version-file:
description: 'Setup PHP version from a file.'
required: false
extensions: extensions:
description: 'Extensions you want to cache.' description: 'Extensions you want to cache.'
required: true required: true
@@ -15,5 +18,5 @@ inputs:
description: 'Key to version the cache hash.' description: 'Key to version the cache hash.'
required: true required: true
runs: runs:
using: 'node12' using: 'node16'
main: 'dist/index.js' main: 'dist/index.js'

17462
dist/index.js vendored

File diff suppressed because one or more lines are too long

10430
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,24 @@
{ {
"name": "cache-extensions", "name": "cache-extensions",
"version": "1.6.2", "version": "1.10.0",
"private": false, "private": false,
"description": "Cache PHP extensions in GitHub Actions", "description": "Cache PHP extensions in GitHub Actions",
"main": "lib/cache.js", "main": "lib/cache.js",
"types": "lib/cache.d.ts",
"directories": {
"lib": "lib",
"test": "__tests__",
"src": "src"
},
"files": [
"lib",
"src"
],
"scripts": { "scripts": {
"build": "tsc", "build": "tsc",
"lint": "eslint **/*.ts --cache", "lint": "eslint **/src/*.ts --cache --fix",
"format": "prettier --write **/*.ts && git add .", "format": "prettier --write **/src/*.ts && git add .",
"format-check": "prettier --check **/*.ts", "format-check": "prettier --check **/src/*.ts",
"release": "ncc build -o dist && git add -f dist/", "release": "ncc build -o dist && git add -f dist/",
"test": "jest" "test": "jest"
}, },
@@ -25,33 +35,32 @@
"author": "shivammathur", "author": "shivammathur",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@actions/cache": "^1.0.7", "@actions/cache": "^3.2.1",
"@actions/core": "^1.5.0", "@actions/core": "^1.10.0",
"@actions/exec": "^1.1.0", "@actions/exec": "^1.1.1",
"setup-php": "^2.14.0" "setup-php": "2.25.4"
}, },
"devDependencies": { "devDependencies": {
"@types/jest": "^27.0.1", "@types/jest": "^29.5.3",
"@types/node": "^16.9.2", "@types/node": "^20.4.5",
"@typescript-eslint/eslint-plugin": "^4.31.1", "@typescript-eslint/eslint-plugin": "^6.2.0",
"@typescript-eslint/parser": "^4.31.1", "@typescript-eslint/parser": "^6.2.0",
"@vercel/ncc": "^0.31.1", "@vercel/ncc": "^0.36.1",
"eslint": "^7.32.0", "eslint": "^8.46.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.9.0",
"eslint-plugin-import": "^2.24.2", "eslint-plugin-import": "^2.28.0",
"eslint-plugin-jest": "^24.4.2", "eslint-plugin-jest": "^27.2.3",
"eslint-plugin-prettier": "^4.0.0", "eslint-plugin-prettier": "^5.0.0",
"husky": "^4.3.8", "jest": "^29.6.2",
"jest": "^27.2.0", "jest-circus": "^29.6.2",
"jest-circus": "^27.2.0", "prettier": "^3.0.0",
"prettier": "^2.4.1", "ts-jest": "^29.1.1",
"ts-jest": "^27.0.5", "typescript": "^5.1.6"
"typescript": "^4.4.3"
}, },
"husky": { "bugs": {
"skipCI": true, "url": "https://github.com/shivammathur/cache-extensions/issues"
"hooks": { },
"simple-git-hooks": {
"pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release" "pre-commit": "npm run format && npm run lint && npm run test && npm run build && npm run release"
} }
} }
}

View File

@@ -2,6 +2,7 @@ import {exec} from '@actions/exec';
import * as cache from '@actions/cache'; import * as cache from '@actions/cache';
import * as core from '@actions/core'; import * as core from '@actions/core';
import * as spu from 'setup-php/lib/utils'; import * as spu from 'setup-php/lib/utils';
import * as fs from 'fs';
import * as path from 'path'; import * as path from 'path';
import * as utils from './utils'; import * as utils from './utils';
@@ -27,8 +28,12 @@ export async function handleDependencies(
[cache_key] [cache_key]
); );
await exec(await utils.scriptCall('dependencies', extensions, version)); await exec(await utils.scriptCall('dependencies', extensions, version));
if (!cache_hit) { if (!cache_hit && fs.existsSync(cache_dir)) {
try {
await cache.saveCache([cache_dir], cache_key); await cache.saveCache([cache_dir], cache_key);
} catch {
await cache.saveCache([cache_dir], cache_key + '-take-2');
}
} }
} }
} }
@@ -38,9 +43,7 @@ export async function handleDependencies(
*/ */
export async function run(): Promise<void> { export async function run(): Promise<void> {
try { try {
const version: string = await spu.parseVersion( const version: string = await spu.parseVersion(await spu.readPHPVersion());
await spu.getInput('php-version', true)
);
const extensions: string = await utils.filterExtensions( const extensions: string = await utils.filterExtensions(
await spu.getInput('extensions', true) await spu.getInput('extensions', true)
); );
@@ -56,5 +59,11 @@ export async function run(): Promise<void> {
(async () => { (async () => {
await run(); await run();
})().catch(error => { })().catch(error => {
if (error.name === cache.ValidationError.name) {
core.setFailed(error.message); core.setFailed(error.message);
} else if (error.name === cache.ReserveCacheError.name) {
core.info(error.message);
} else {
core.warning(error.message);
}
}); });

View File

@@ -1,18 +1,171 @@
a
a
a
amqp amqp
b
b
b
b
b
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
couchbase
e
e
event
expect expect
f
f
g
g
g
g
g
g
g
gearman
gnupg
grpc grpc
h
h
i
i
i
i
i
imagick imagick
imap imap
j
j
j
k
l
l
l
l
l
l
l
l
l
lib
lib
lib
lib
lib
lib
lib
lib
lib
lib
lib
lib
lib
lib
lib
lib
lua
m
m
m
m
m
mcrypt
memcached memcached
mongodb mongodb
n
n
n
newrelic
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
p
p
p
p
p
p
p
p
p
p
pdo_sqlsrv
pecl_http pecl_http
phalcon3 phalcon3
phalcon4 phalcon4
phalcon5
psr psr
r
r
r
r
r
rdkafka rdkafka
redis redis
s
s
s
snmp
sqlsrv
ssh2 ssh2
swoole swoole
t
u
u
u
u
uuid
v
v
v8js
vips vips
w
w
x
x
x
x
x
x
x
yaml yaml
z
z
z
z
z
z
z
z
z
zmq zmq

View File

@@ -31,7 +31,6 @@ libatspi2.0-0
libattr1 libattr1
libaudit-common libaudit-common
libaudit1 libaudit1
libauthen-sasl-perl
libavahi-client3 libavahi-client3
libavahi-common-data libavahi-common-data
libavahi-common3 libavahi-common3
@@ -80,6 +79,8 @@ libcap2
libcap2-bin libcap2-bin
libcbor0.6 libcbor0.6
libcc1-0 libcc1-0
libcgi-fast-perl
libcgi-pm-perl
libcgroup1 libcgroup1
libclang-common-10-dev libclang-common-10-dev
libclang-common-11-dev libclang-common-11-dev
@@ -101,7 +102,6 @@ libctf0
libcups2 libcups2
libcurl3-gnutls libcurl3-gnutls
libcurl4 libcurl4
libdata-dump-perl
libdatrie1 libdatrie1
libdb5.3 libdb5.3
libdbus-1-3 libdbus-1-3
@@ -146,17 +146,13 @@ libext2fs2
libfakeroot libfakeroot
libfastjson4 libfastjson4
libfbclient2 libfbclient2
libfcgi-perl
libfdisk1 libfdisk1
libffi-dev libffi-dev
libffi7 libffi7
libfftw3-double3 libfftw3-double3
libfido2-1 libfido2-1
libfile-basedir-perl
libfile-desktopentry-perl
libfile-listing-perl
libfile-mimeinfo-perl
libfl2 libfl2
libfont-afm-perl
libfontconfig1 libfontconfig1
libfontconfig1-dev libfontconfig1-dev
libfontenc1 libfontenc1
@@ -168,6 +164,7 @@ libfuse2
libfuse3-3 libfuse3-3
libfwupd2 libfwupd2
libfwupdplugin1 libfwupdplugin1
libfwupdplugin5
libgbm-dev libgbm-dev
libgbm1 libgbm1
libgc1c2 libgc1c2
@@ -223,21 +220,17 @@ libgtk-3-common
libgudev-1.0-0 libgudev-1.0-0
libgusb2 libgusb2
libharfbuzz0b libharfbuzz0b
libhashkit2
libhavege1 libhavege1
libhcrypto4-heimdal libhcrypto4-heimdal
libheimbase1-heimdal libheimbase1-heimdal
libheimntlm0-heimdal libheimntlm0-heimdal
libhogweed5 libhogweed5
libhtml-form-perl
libhtml-format-perl
libhtml-parser-perl libhtml-parser-perl
libhtml-tagset-perl libhtml-tagset-perl
libhtml-tree-perl libhtml-template-perl
libhttp-cookies-perl
libhttp-daemon-perl
libhttp-date-perl libhttp-date-perl
libhttp-message-perl libhttp-message-perl
libhttp-negotiate-perl
libhunspell-1.7-0 libhunspell-1.7-0
libhx509-5-heimdal libhx509-5-heimdal
libice-dev libice-dev
@@ -249,11 +242,8 @@ libidn2-0
libilmbase-dev libilmbase-dev
libilmbase24 libilmbase24
libio-html-perl libio-html-perl
libio-socket-ssl-perl
libio-stringy-perl
libip4tc2 libip4tc2
libip6tc2 libip6tc2
libipc-system-simple-perl
libisc-export1105 libisc-export1105
libisl22 libisl22
libisns0 libisns0
@@ -299,7 +289,6 @@ liblldb-12
libllvm10 libllvm10
libllvm11 libllvm11
libllvm12 libllvm12
libllvm9
liblmdb0 liblmdb0
liblocale-gettext-perl liblocale-gettext-perl
liblqr-1-0 liblqr-1-0
@@ -310,8 +299,8 @@ libltdl7
liblua5.2-0 liblua5.2-0
liblvm2cmd2.03 liblvm2cmd2.03
liblwp-mediatypes-perl liblwp-mediatypes-perl
liblwp-protocol-https-perl
liblz4-1 liblz4-1
liblz4-dev
liblzma-dev liblzma-dev
liblzma5 liblzma5
liblzo2-2 liblzo2-2
@@ -328,12 +317,14 @@ libmagickwand-6-headers
libmagickwand-6.q16-6 libmagickwand-6.q16-6
libmagickwand-6.q16-dev libmagickwand-6.q16-dev
libmagickwand-dev libmagickwand-dev
libmailtools-perl
libmaxminddb0 libmaxminddb0
libmbim-glib4
libmbim-proxy
libmcrypt4 libmcrypt4
libmecab2 libmecab2
libmediainfo0v5 libmediainfo0v5
libmemcached11 libmemcached11
libmm-glib0
libmms0 libmms0
libmnl0 libmnl0
libmono-2.0-1 libmono-2.0-1
@@ -492,16 +483,13 @@ libncurses-dev
libncurses5 libncurses5
libncurses6 libncurses6
libncursesw6 libncursesw6
libnet-dbus-perl
libnet-http-perl
libnet-smtp-ssl-perl
libnet-ssleay-perl
libnet1 libnet1
libnetfilter-conntrack3 libnetfilter-conntrack3
libnetplan0 libnetplan0
libnettle7 libnettle7
libnewt0.52 libnewt0.52
libnfnetlink0 libnfnetlink0
libnftables1
libnftnl11 libnftnl11
libnghttp2-14 libnghttp2-14
libnginx-mod-http-image-filter libnginx-mod-http-image-filter
@@ -550,6 +538,7 @@ libpcre2-32-0
libpcre2-8-0 libpcre2-8-0
libpcre2-dev libpcre2-dev
libpcre2-posix2 libpcre2-posix2
libpcre2-posix3
libpcre3 libpcre3
libpcre3-dev libpcre3-dev
libpcre32-3 libpcre32-3
@@ -584,6 +573,8 @@ libpython3.8-dev
libpython3.8-minimal libpython3.8-minimal
libpython3.8-stdlib libpython3.8-stdlib
libqdbm14 libqdbm14
libqmi-glib5
libqmi-proxy
libquadmath0 libquadmath0
librabbitmq4 librabbitmq4
libre2-5 libre2-5
@@ -658,7 +649,6 @@ libtext-wrapi18n-perl
libthai-data libthai-data
libthai0 libthai0
libtidy5deb1 libtidy5deb1
libtie-ixhash-perl
libtiff-dev libtiff-dev
libtiff5 libtiff5
libtiffxx5 libtiffxx5
@@ -670,7 +660,6 @@ libtinyxml2-6a
libtk8.6 libtk8.6
libtommath1 libtommath1
libtool libtool
libtry-tiny-perl
libtsan0 libtsan0
libtss2-esys0 libtss2-esys0
libtypes-serialiser-perl libtypes-serialiser-perl
@@ -705,14 +694,11 @@ libwind0-heimdal
libwmf-dev libwmf-dev
libwmf0.2-7 libwmf0.2-7
libwrap0 libwrap0
libwww-perl
libwww-robotrules-perl
libwxbase3.0-0v5 libwxbase3.0-0v5
libwxgtk3.0-gtk3-0v5 libwxgtk3.0-gtk3-0v5
libx11-6 libx11-6
libx11-data libx11-data
libx11-dev libx11-dev
libx11-protocol-perl
libx11-xcb1 libx11-xcb1
libxau-dev libxau-dev
libxau6 libxau6
@@ -723,7 +709,6 @@ libxcb-glx0
libxcb-present0 libxcb-present0
libxcb-render0 libxcb-render0
libxcb-render0-dev libxcb-render0-dev
libxcb-shape0
libxcb-shm0 libxcb-shm0
libxcb-shm0-dev libxcb-shm0-dev
libxcb-sync1 libxcb-sync1
@@ -748,14 +733,12 @@ libxkbfile-dev
libxkbfile1 libxkbfile1
libxml-libxml-perl libxml-libxml-perl
libxml-namespacesupport-perl libxml-namespacesupport-perl
libxml-parser-perl
libxml-sax-base-perl libxml-sax-base-perl
libxml-sax-perl libxml-sax-perl
libxml-twig-perl
libxml-xpathengine-perl
libxml2 libxml2
libxml2-dev libxml2-dev
libxmlb1 libxmlb1
libxmlb2
libxmlrpc-epi0 libxmlrpc-epi0
libxmlsec1 libxmlsec1
libxmlsec1-openssl libxmlsec1-openssl
@@ -772,11 +755,10 @@ libxt-dev
libxt6 libxt6
libxtables12 libxtables12
libxtst6 libxtst6
libxv1
libxxf86dga1
libxxf86vm1 libxxf86vm1
libyajl2 libyajl2
libyaml-0-2 libyaml-0-2
libyaml-dev
libz3-4 libz3-4
libz3-dev libz3-dev
libzen0v5 libzen0v5

View File

@@ -1,27 +1,27 @@
lib32gcc1 lib32gcc-s1
lib32stdc++6 lib32stdc++6
lib32z1 lib32z1
libaccountsservice0
libacl1 libacl1
libaio1 libaio1
libaom3
libapparmor1 libapparmor1
libappstream4
libapr1 libapr1
libaprutil1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-dbd-sqlite3
libaprutil1-ldap libaprutil1-ldap
libapt-inst2.0 libapt-pkg6.0
libapt-pkg5.0
libarchive13 libarchive13
libargon2-0
libargon2-1 libargon2-1
libasan4 libaria2-0
libasan5 libasan5
libasan6 libasan6
libasn1-8-heimdal libasan8
libasound2 libasound2
libasound2-data libasound2-data
libaspell15 libaspell15
libassuan0 libassuan0
libatasmart4
libatk-bridge2.0-0 libatk-bridge2.0-0
libatk1.0-0 libatk1.0-0
libatk1.0-data libatk1.0-data
@@ -31,25 +31,36 @@ libatspi2.0-0
libattr1 libattr1
libaudit-common libaudit-common
libaudit1 libaudit1
libauthen-sasl-perl
libavahi-client3 libavahi-client3
libavahi-common-data libavahi-common-data
libavahi-common3 libavahi-common3
libbind9-160 libavahi-glib1
libbinutils libbinutils
libbison-dev
libblas-dev libblas-dev
libblas3 libblas3
libblkid-dev
libblkid1 libblkid1
libblockdev-crypto2
libblockdev-fs2
libblockdev-loop2
libblockdev-part-err2
libblockdev-part2
libblockdev-swap2
libblockdev-utils2
libblockdev2
libbpf0
libbrotli-dev
libbrotli1
libbsd0 libbsd0
libburn4 libburn4
libbz2-1.0 libbz2-1.0
libbz2-dev libbz2-dev
libc++-14-dev
libc++-dev libc++-dev
libc++-helpers libc++1-14
libc++1 libc++abi-14-dev
libc++abi-dev libc++abi-dev
libc++abi1 libc++abi1-14
libc-ares2 libc-ares2
libc-bin libc-bin
libc-client2007e libc-client2007e
@@ -65,38 +76,50 @@ libcanberra0
libcap-ng0 libcap-ng0
libcap2 libcap2
libcap2-bin libcap2-bin
libcbor0.8
libcc1-0 libcc1-0
libcgi-fast-perl libcgi-fast-perl
libcgi-pm-perl libcgi-pm-perl
libcgroup1 libcgroup1
libcilkrts5 libclang-common-13-dev
libclang-common-9-dev libclang-common-14-dev
libclang-cpp9 libclang-common-15-dev
libclang1-9 libclang-cpp13
libclang-cpp14
libclang-cpp15
libclang1-13
libclang1-14
libclang1-15
libclone-perl
libcolord2 libcolord2
libcom-err2 libcom-err2
libcommon-sense-perl libcommon-sense-perl
libcroco3 libcrypt-dev
libcrypt1
libcryptsetup12 libcryptsetup12
libctf-nobfd0
libctf0
libcups2 libcups2
libcurl3-gnutls libcurl3-gnutls
libcurl4 libcurl4
libdata-dump-perl
libdatrie1 libdatrie1
libdav1d5
libdb5.3 libdb5.3
libdbus-1-3 libdbus-1-3
libdbus-glib-1-2 libdbus-glib-1-2
libdbusmenu-glib4 libdbusmenu-glib4
libdbusmenu-gtk3-4 libdbusmenu-gtk3-4
libdconf1 libdconf1
libde265-0
libdebconfclient0 libdebconfclient0
libdeflate-dev
libdeflate0
libdevmapper-event1.02.1 libdevmapper-event1.02.1
libdevmapper1.02.1 libdevmapper1.02.1
libdjvulibre-dev libdjvulibre-dev
libdjvulibre-text libdjvulibre-text
libdjvulibre21 libdjvulibre21
libdns-export1100 libdns-export1110
libdns1100
libdpkg-perl libdpkg-perl
libdrm-amdgpu1 libdrm-amdgpu1
libdrm-common libdrm-common
@@ -104,22 +127,19 @@ libdrm-intel1
libdrm-nouveau2 libdrm-nouveau2
libdrm-radeon1 libdrm-radeon1
libdrm2 libdrm2
libdumbnet1
libdw1 libdw1
libdwarf1
libeatmydata1 libeatmydata1
libedit2 libedit2
libefiboot1 libefiboot1
libefivar1 libefivar1
libelf1 libelf1
libenchant1c2a libenchant-2-2
libencode-locale-perl libencode-locale-perl
libepoxy0 libepoxy0
liberror-perl liberror-perl
libestr0 libestr0
libevent-2.1-6 libevent-core-2.1-7
libevent-core-2.1-6 libevent-pthreads-2.1-7
libevent-pthreads-2.1-6
libexif-dev libexif-dev
libexif12 libexif12
libexpat1 libexpat1
@@ -128,57 +148,62 @@ libext2fs2
libfakeroot libfakeroot
libfastjson4 libfastjson4
libfbclient2 libfbclient2
libfcgi-bin
libfcgi-perl libfcgi-perl
libfcgi0ldbl
libfdisk1 libfdisk1
libffi-dev libffi-dev
libffi6 libffi8
libfftw3-double3 libfftw3-double3
libfile-basedir-perl libfido2-1
libfile-desktopentry-perl libflashrom1
libfile-listing-perl libfontconfig-dev
libfile-mimeinfo-perl
libfont-afm-perl
libfontconfig1 libfontconfig1
libfontconfig1-dev libfontconfig1-dev
libfontenc1 libfontenc1
libfreetype-dev
libfreetype6 libfreetype6
libfreetype6-dev libfreetype6-dev
libfribidi0 libfribidi0
libfuse2 libfsverity0
libftdi1-2
libfuse3-3
libfwupd2
libfwupdplugin5
libgbm-dev libgbm-dev
libgbm1 libgbm1
libgc1c2 libgc1
libgcab-1.0-0
libgcc-10-dev libgcc-10-dev
libgcc-7-dev libgcc-11-dev
libgcc-12-dev
libgcc-13-dev
libgcc-9-dev libgcc-9-dev
libgcc-s1 libgcc-s1
libgcc1
libgconf-2-4 libgconf-2-4
libgcrypt20 libgcrypt20
libgcrypt20-dev
libgd3 libgd3
libgdbm-compat4 libgdbm-compat4
libgdbm5 libgdbm6
libgdiplus libgdiplus
libgdk-pixbuf2.0-0 libgdk-pixbuf-2.0-0
libgdk-pixbuf-2.0-dev
libgdk-pixbuf2.0-bin
libgdk-pixbuf2.0-common libgdk-pixbuf2.0-common
libgdk-pixbuf2.0-dev
libgeoip1
libgflags2.2
libgfortran-10-dev libgfortran-10-dev
libgfortran-7-dev libgfortran-11-dev
libgfortran-12-dev
libgfortran-13-dev
libgfortran-9-dev libgfortran-9-dev
libgfortran4
libgfortran5 libgfortran5
libgif7 libgif7
libgirepository-1.0-1 libgirepository-1.0-1
libgl1 libgl1
libgl1-mesa-dri libgl1-mesa-dri
libglade2-0
libglade2.0-cil
libglapi-mesa libglapi-mesa
libglib2.0-0 libglib2.0-0
libglib2.0-bin libglib2.0-bin
libglib2.0-cil
libglib2.0-data libglib2.0-data
libglib2.0-dev libglib2.0-dev
libglib2.0-dev-bin libglib2.0-dev-bin
@@ -190,68 +215,46 @@ libgmp10
libgmpxx4ldbl libgmpxx4ldbl
libgnutls30 libgnutls30
libgomp1 libgomp1
libgoogle-glog0v5 libgpg-error-dev
libgpg-error0 libgpg-error0
libgpgme11 libgpgme11
libgpm2 libgpm2
libgraphite2-3 libgraphite2-3
libgraphite2-dev
libgsl-dev libgsl-dev
libgsl23 libgsl27
libgslcblas0 libgslcblas0
libgssapi-krb5-2 libgssapi-krb5-2
libgssapi3-heimdal libgstreamer1.0-0
libgtk-3-0 libgtk-3-0
libgtk-3-common libgtk-3-common
libgtk2.0-0 libgudev-1.0-0
libgtk2.0-cil libgusb2
libgtk2.0-common
libharfbuzz-dev
libharfbuzz-gobject0
libharfbuzz-icu0
libharfbuzz0b libharfbuzz0b
libhavege1 libhavege2
libhcrypto4-heimdal libheif1
libheimbase1-heimdal libhogweed6
libheimntlm0-heimdal
libhogweed4
libhtml-form-perl
libhtml-format-perl
libhtml-parser-perl libhtml-parser-perl
libhtml-tagset-perl libhtml-tagset-perl
libhtml-template-perl libhtml-template-perl
libhtml-tree-perl
libhttp-cookies-perl
libhttp-daemon-perl
libhttp-date-perl libhttp-date-perl
libhttp-message-perl libhttp-message-perl
libhttp-negotiate-perl libhunspell-1.7-0
libhunspell-1.6-0 libhwasan0
libhx509-5-heimdal
libice-dev libice-dev
libice6 libice6
libicu-dev libicu-dev
libicu-le-hb-dev libicu70
libicu-le-hb0
libicu60
libicu65
libiculx60
libidn11
libidn2-0 libidn2-0
libilmbase-dev libilmbase-dev
libilmbase12 libilmbase25
libinih1
libintl-perl
libintl-xs-perl
libio-html-perl libio-html-perl
libio-socket-ssl-perl libip4tc2
libip4tc0 libip6tc2
libip6tc0 libisc-export1105
libipc-system-simple-perl libisl23
libiptc0
libirs160
libisc-export169
libisc169
libisccc160
libisccfg160
libisl19
libisns0 libisns0
libisoburn1 libisoburn1
libisofs6 libisofs6
@@ -259,6 +262,7 @@ libitm1
libjansson4 libjansson4
libjbig-dev libjbig-dev
libjbig0 libjbig0
libjcat1
libjpeg-dev libjpeg-dev
libjpeg-turbo8 libjpeg-turbo8
libjpeg-turbo8-dev libjpeg-turbo8-dev
@@ -266,17 +270,19 @@ libjpeg8
libjpeg8-dev libjpeg8-dev
libjq1 libjq1
libjs-jquery libjs-jquery
libjson-c3 libjs-sphinxdoc
libjs-underscore
libjs-xmlextras
libjson-c5
libjson-glib-1.0-0 libjson-glib-1.0-0
libjson-glib-1.0-common libjson-glib-1.0-common
libjson-perl libjson-perl
libjson-xs-perl libjson-xs-perl
libjte1 libjte2
libk5crypto3 libk5crypto3
libkeyutils1 libkeyutils1
libklibc libklibc
libkmod2 libkmod2
libkrb5-26-heimdal
libkrb5-3 libkrb5-3
libkrb5support0 libkrb5support0
libksba8 libksba8
@@ -284,13 +290,14 @@ liblapack-dev
liblapack3 liblapack3
liblcms2-2 liblcms2-2
liblcms2-dev liblcms2-dev
libldap-2.4-2 libldap-2.5-0
libldap-common libldap-common
libldb1 liblldb-13
liblldb-9 liblldb-14
libllvm10 liblldb-15
libllvm6.0 libllvm13
libllvm9 libllvm14
libllvm15
liblmdb0 liblmdb0
liblocale-gettext-perl liblocale-gettext-perl
liblqr-1-0 liblqr-1-0
@@ -298,15 +305,11 @@ liblqr-1-0-dev
liblsan0 liblsan0
libltdl-dev libltdl-dev
libltdl7 libltdl7
liblua5.2-0 liblua5.3-0
liblvm2app2.2 liblvm2cmd2.03
liblvm2cmd2.02
liblwp-mediatypes-perl liblwp-mediatypes-perl
liblwp-protocol-https-perl
liblwres160
liblxc-common
liblxc1
liblz4-1 liblz4-1
liblz4-dev
liblzma-dev liblzma-dev
liblzma5 liblzma5
liblzo2-2 liblzo2-2
@@ -315,20 +318,26 @@ libmagic-mgc
libmagic1 libmagic1
libmagickcore-6-arch-config libmagickcore-6-arch-config
libmagickcore-6-headers libmagickcore-6-headers
libmagickcore-6.q16-3 libmagickcore-6.q16-6
libmagickcore-6.q16-3-extra libmagickcore-6.q16-6-extra
libmagickcore-6.q16-dev libmagickcore-6.q16-dev
libmagickcore-dev libmagickcore-dev
libmagickwand-6-headers libmagickwand-6-headers
libmagickwand-6.q16-3 libmagickwand-6.q16-6
libmagickwand-6.q16-dev libmagickwand-6.q16-dev
libmagickwand-dev libmagickwand-dev
libmailtools-perl libmaxminddb0
libmcrypt4 libmbim-glib4
libmbim-proxy
libmd0
libmecab2
libmediainfo0v5 libmediainfo0v5
libmemcached11 libmemcached11
libmm-glib0
libmms0 libmms0
libmnl0 libmnl0
libmodule-find-perl
libmodule-scandeps-perl
libmono-2.0-1 libmono-2.0-1
libmono-2.0-dev libmono-2.0-dev
libmono-accessibility4.0-cil libmono-accessibility4.0-cil
@@ -473,54 +482,57 @@ libmono-xbuild-tasks4.0-cil
libmonoboehm-2.0-1 libmonoboehm-2.0-1
libmonosgen-2.0-1 libmonosgen-2.0-1
libmonosgen-2.0-dev libmonosgen-2.0-dev
libmount-dev
libmount1 libmount1
libmpc3 libmpc3
libmpdec2 libmpdec3
libmpfr6 libmpfr6
libmpx2
libmspack0 libmspack0
libmysqlclient-dev libmysqlclient-dev
libmysqlclient20 libmysqlclient21
libncurses5 libncurses-dev
libncurses5-dev libncurses6
libncursesw5 libncursesw6
libnet-dbus-perl
libnet-http-perl
libnet-smtp-ssl-perl
libnet-ssleay-perl
libnet1
libnetfilter-conntrack3 libnetfilter-conntrack3
libnetplan0 libnetplan0
libnettle6 libnettle8
libnewt0.52 libnewt0.52
libnfnetlink0 libnfnetlink0
libnftables1
libnftnl11
libnghttp2-14 libnghttp2-14
libnginx-mod-http-geoip libnginx-mod-http-geoip2
libnginx-mod-http-image-filter libnginx-mod-http-image-filter
libnginx-mod-http-xslt-filter libnginx-mod-http-xslt-filter
libnginx-mod-mail libnginx-mod-mail
libnginx-mod-stream libnginx-mod-stream
libnih1 libnginx-mod-stream-geoip2
libnl-3-200 libnl-3-200
libnl-genl-3-200 libnl-genl-3-200
libnorm1 libnorm1
libnotify4
libnpth0 libnpth0
libnsl-dev
libnsl2
libnspr4 libnspr4
libnss-systemd libnss-systemd
libnss3 libnss3
libntfs-3g88 libntfs-3g89
libnuma1 libnuma1
libobjc-7-dev libobjc-11-dev
libobjc4 libobjc4
libodbc1 libodbc2
libodbccr2
libodbcinst2
libogg0 libogg0
libomp-9-dev libonig5
libomp5-9
libonig4
libopenexr-dev libopenexr-dev
libopenexr22 libopenexr25
libopeniscsiusr
libopenjp2-7
libopenjp2-7-dev
libostree-1-1
libp11-kit0 libp11-kit0
libpackagekit-glib2-18
libpam-cap libpam-cap
libpam-modules libpam-modules
libpam-modules-bin libpam-modules-bin
@@ -532,6 +544,7 @@ libpangocairo-1.0-0
libpangoft2-1.0-0 libpangoft2-1.0-0
libpaper-utils libpaper-utils
libpaper1 libpaper1
libparted-fs-resize0
libparted2 libparted2
libpcap0.8 libpcap0.8
libpci3 libpci3
@@ -541,96 +554,97 @@ libpcre2-16-0
libpcre2-32-0 libpcre2-32-0
libpcre2-8-0 libpcre2-8-0
libpcre2-dev libpcre2-dev
libpcre2-posix2 libpcre2-posix3
libpcre3 libpcre3
libpcre3-dev libpcre3-dev
libpcre32-3 libpcre32-3
libpcrecpp0v5 libpcrecpp0v5
libperl5.26 libperl5.34
libpfm4 libpfm4
libpgm-5.2-0 libpgm-5.3-0
libpipeline1 libpipeline1
libpixman-1-0 libpixman-1-0
libpixman-1-dev libpixman-1-dev
libplymouth4 libplymouth5
libpng-dev libpng-dev
libpng16-16 libpng16-16
libpolkit-agent-1-0 libpolkit-agent-1-0
libpolkit-backend-1-0
libpolkit-gobject-1-0 libpolkit-gobject-1-0
libpopt0 libpopt0
libpq-dev libpq-dev
libpq5 libpq5
libprocps6 libproc-processtable-perl
libprotobuf-c1 libprocps8
libprotobuf10 libprotobuf-lite23
libproxy1v5 libproxy1v5
libpsl5 libpsl5
libpthread-stubs0-dev libpthread-stubs0-dev
libpython-dev
libpython-stdlib
libpython2.7
libpython2.7-dev
libpython2.7-minimal
libpython2.7-stdlib
libpython3-dev libpython3-dev
libpython3-stdlib libpython3-stdlib
libpython3.6 libpython3.10
libpython3.6-dev libpython3.10-dev
libpython3.6-minimal libpython3.10-minimal
libpython3.6-stdlib libpython3.10-stdlib
libqdbm14 libqdbm14
libqmi-glib5
libqmi-proxy
libquadmath0 libquadmath0
librabbitmq4 librabbitmq4
libre2-4 libre2-9
libreadline-dev libreadline-dev
libreadline5 libreadline8
libreadline7 librpm9
librecode0 librpmbuild9
librest-0.7-0 librpmio9
libroken18-heimdal librpmsign9
librpm8
librpmbuild8
librpmio8
librpmsign8
librsvg2-2 librsvg2-2
librsvg2-common librsvg2-common
librsvg2-dev librsvg2-dev
librtmp1 librtmp1
libruby2.5 libruby3.0
libsasl2-2 libsasl2-2
libsasl2-modules libsasl2-modules
libsasl2-modules-db libsasl2-modules-db
libsctp1
libseccomp2 libseccomp2
libsecret-1-0 libsecret-1-0
libsecret-1-dev libsecret-1-dev
libsecret-common libsecret-common
libselinux1 libselinux1
libselinux1-dev
libsemanage-common libsemanage-common
libsemanage1 libsemanage2
libsensors4 libsensors-config
libsepol1 libsensors5
libsepol-dev
libsepol2
libserf-1-1 libserf-1-1
libsgutils2-2
libsigsegv2 libsigsegv2
libslang2 libslang2
libslirp0
libsm-dev libsm-dev
libsm6 libsm6
libsmartcols1 libsmartcols1
libsmbios-c2
libsnappy1v5 libsnappy1v5
libsnmp-base libsnmp-base
libsnmp30 libsnmp40
libsodium23 libsodium23
libsoup-gnome2.4-1 libsort-naturally-perl
libsoup2.4-1 libsoup2.4-1
libsoup2.4-common
libsqlite3-0 libsqlite3-0
libsqlite3-dev libsqlite3-dev
libss2 libss2
libssh-4
libssh2-1
libssl-dev libssl-dev
libssl1.0.0
libssl1.1 libssl1.1
libssl3
libstdc++-10-dev libstdc++-10-dev
libstdc++-7-dev libstdc++-11-dev
libstdc++-12-dev
libstdc++-13-dev
libstdc++-9-dev libstdc++-9-dev
libstdc++6 libstdc++6
libstemmer0d libstemmer0d
@@ -639,9 +653,9 @@ libsybdb5
libsystemd0 libsystemd0
libtalloc2 libtalloc2
libtasn1-6 libtasn1-6
libtbb2
libtcl8.6 libtcl8.6
libtdb1 libtdb1
libterm-readkey-perl
libtevent0 libtevent0
libtext-charwidth-perl libtext-charwidth-perl
libtext-iconv-perl libtext-iconv-perl
@@ -650,56 +664,68 @@ libtext-wrapi18n-perl
libthai-data libthai-data
libthai0 libthai0
libtidy5deb1 libtidy5deb1
libtie-ixhash-perl
libtiff-dev libtiff-dev
libtiff5 libtiff5
libtiff5-dev
libtiffxx5 libtiffxx5
libtimedate-perl libtimedate-perl
libtinfo-dev libtinfo-dev
libtinfo5 libtinfo6
libtinyxml2-6 libtinyxml2-9
libtirpc-common
libtirpc-dev
libtirpc3
libtk8.6 libtk8.6
libtommath1 libtommath1
libtool libtool
libtry-tiny-perl
libtsan0 libtsan0
libtsan2
libtss2-esys-3.0.2-0
libtss2-mu0
libtss2-rc0
libtss2-sys1
libtss2-tcti-cmd0
libtss2-tcti-device0
libtss2-tcti-mssim0
libtss2-tcti-swtpm0
libtypes-serialiser-perl libtypes-serialiser-perl
libu2f-udev libu2f-udev
libubsan0
libubsan1 libubsan1
libuchardet0
libucl1 libucl1
libudev1 libudev1
libudisks2-0
libunistring2 libunistring2
libunwind-14
libunwind-14-dev
libunwind8 libunwind8
liburcu8
liburi-perl liburi-perl
libusb-1.0-0 libusb-1.0-0
libutempter0 libutempter0
libutf8proc2
libuuid1 libuuid1
libuv1 libuv1
libvolume-key1
libvorbis0a libvorbis0a
libvorbisfile3 libvorbisfile3
libvpx5
libvulkan1 libvulkan1
libwayland-client0 libwayland-client0
libwayland-cursor0 libwayland-cursor0
libwayland-egl1 libwayland-egl1
libwayland-server0 libwayland-server0
libwbclient0 libwbclient0
libwebp6 libwebp7
libwind0-heimdal libwebpdemux2
libwebpmux3
libwmf-0.2-7
libwmf-dev libwmf-dev
libwmf0.2-7 libwmflite-0.2-7
libwrap0 libwrap0
libwww-perl
libwww-robotrules-perl
libwxbase3.0-0v5
libwxgtk3.0-0v5
libx11-6 libx11-6
libx11-data libx11-data
libx11-dev libx11-dev
libx11-protocol-perl
libx11-xcb1 libx11-xcb1
libx265-199
libxau-dev libxau-dev
libxau6 libxau6
libxaw7 libxaw7
@@ -707,12 +733,13 @@ libxcb-dri2-0
libxcb-dri3-0 libxcb-dri3-0
libxcb-glx0 libxcb-glx0
libxcb-present0 libxcb-present0
libxcb-randr0
libxcb-render0 libxcb-render0
libxcb-render0-dev libxcb-render0-dev
libxcb-shape0
libxcb-shm0 libxcb-shm0
libxcb-shm0-dev libxcb-shm0-dev
libxcb-sync1 libxcb-sync1
libxcb-xfixes0
libxcb1 libxcb1
libxcb1-dev libxcb1-dev
libxcomposite1 libxcomposite1
@@ -724,7 +751,6 @@ libxext-dev
libxext6 libxext6
libxfixes3 libxfixes3
libxfont2 libxfont2
libxft-dev
libxft2 libxft2
libxi6 libxi6
libxinerama1 libxinerama1
@@ -733,14 +759,11 @@ libxkbfile-dev
libxkbfile1 libxkbfile1
libxml-libxml-perl libxml-libxml-perl
libxml-namespacesupport-perl libxml-namespacesupport-perl
libxml-parser-perl
libxml-sax-base-perl libxml-sax-base-perl
libxml-sax-perl libxml-sax-perl
libxml-twig-perl
libxml-xpathengine-perl
libxml2 libxml2
libxml2-dev libxml2-dev
libxmlrpc-epi0 libxmlb2
libxmlsec1 libxmlsec1
libxmlsec1-openssl libxmlsec1-openssl
libxmu6 libxmu6
@@ -756,13 +779,18 @@ libxt-dev
libxt6 libxt6
libxtables12 libxtables12
libxtst6 libxtst6
libxv1
libxxf86dga1
libxxf86vm1 libxxf86vm1
libxxhash0
libyajl2 libyajl2
libyaml-0-2 libyaml-0-2
libyaml-dev
libz3-4
libz3-dev
libzen0v5 libzen0v5
libzip4 libzip4
libzmq5 libzmq5
libzstd-dev
libzstd1 libzstd1
python3-launchpadlib
python3-oauthlib python3-oauthlib
python3-wadllib

View File

@@ -78,7 +78,7 @@ extension_dir_linux() {
data() { data() {
old_versions="5.[3-5]" old_versions="5.[3-5]"
date='20210919' date='20220831'
if [ "$os" = "Linux" ]; then if [ "$os" = "Linux" ]; then
. /etc/lsb-release . /etc/lsb-release
os=$os-$DISTRIB_CODENAME os=$os-$DISTRIB_CODENAME
@@ -86,22 +86,20 @@ data() {
dir=$(extension_dir_linux "$api_version") dir=$(extension_dir_linux "$api_version")
sudo mkdir -p "$dir/deps" && fix_ownership "$dir" sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
elif [ "$os" = "Darwin" ]; then elif [ "$os" = "Darwin" ]; then
date='20211006'
[[ "$extensions" == *"imap"* ]] && date='20211022'
api_version=$(get_api_version) api_version=$(get_api_version)
dir=$(extension_dir_darwin "$api_version") dir=$(extension_dir_darwin "$api_version")
sudo mkdir -p "$dir/deps" && fix_ownership "$dir" sudo mkdir -p "$dir/deps" && fix_ownership "$dir"
else else
os="Windows" os="Windows"
dir='C:\\tools\\php\\ext' dir='C:\\tools\\php\\ext'
[[ "${version:?}" =~ 8.[1-2] ]] && date='20211124'
fi fi
key="$os"-ext-"$version"-$(echo -n "$extensions-$key" | openssl dgst -sha256 | cut -d ' ' -f 2) job="${GITHUB_REPOSITORY}-${GITHUB_WORKFLOW}-${GITHUB_JOB}"
key="$key-$date" key="$(echo -n "$extensions-$key-$job" | openssl dgst -sha256 | cut -d ' ' -f 2)"
key="$os"-"$version"-"$key"-"$date"
echo "$dir" > "${RUNNER_TEMP:?}"/dir echo "$dir" > "${RUNNER_TEMP:?}"/dir
echo "$key" > "${RUNNER_TEMP:?}"/key echo "$key" > "${RUNNER_TEMP:?}"/key
echo "::set-output name=dir::$dir" echo "dir=$dir" >> "${GITHUB_OUTPUT:?}"
echo "::set-output name=key::$key" echo "key=$key" >> "${GITHUB_OUTPUT:?}"
} }
dependencies() { dependencies() {
@@ -110,6 +108,7 @@ dependencies() {
export cross="✗" export cross="✗"
export ext_config_directory="/tmp/extcache" export ext_config_directory="/tmp/extcache"
export deps_cache_directory="${RUNNER_TOOL_CACHE}"/deps export deps_cache_directory="${RUNNER_TOOL_CACHE}"/deps
sudo mkdir -p "$deps_cache_directory"
script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd) script_dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)
# shellcheck disable=SC1090 # shellcheck disable=SC1090
. "$script_dir/$(echo "$os" | tr '[:upper:]' '[:lower:]').sh" . "$script_dir/$(echo "$os" | tr '[:upper:]' '[:lower:]').sh"

View File

@@ -29,10 +29,12 @@ get_dependencies() {
formula_file="$tap_dir/$ext_tap/Formula/$extension@${version:?}.rb" formula_file="$tap_dir/$ext_tap/Formula/$extension@${version:?}.rb"
if [ -e "$formula_file" ]; then if [ -e "$formula_file" ]; then
formula_deps="$(grep "depends_on" "$formula_file" | cut -d '"' -f 2 | tr '\n' ' ')" formula_deps="$(grep "depends_on" "$formula_file" | cut -d '"' -f 2 | tr '\n' ' ')"
formula_deps_from_macos="$(grep "uses_from_macos \"lib" "$formula_file" | cut -d '"' -f 2 | tr '\n' ' ')"
fi fi
deps=() deps=()
[[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}") [[ -n "${list_deps[*]}" ]] && deps+=("${list_deps[@]}")
[[ -n "${formula_deps[*]}" ]] && deps+=("${formula_deps[@]}") [[ -n "${formula_deps[*]}" ]] && deps+=("${formula_deps[@]}")
[[ -n "${formula_deps_from_macos[*]}" ]] && deps+=("${formula_deps_from_macos[@]}")
echo "${deps[@]}" echo "${deps[@]}"
} }
@@ -117,6 +119,9 @@ restore_library_helper() {
if ! [ -d "$brew_prefix/opt/$dep_name" ]; then if ! [ -d "$brew_prefix/opt/$dep_name" ]; then
brew link --force --overwrite "$dep_name" 2>/dev/null || true brew link --force --overwrite "$dep_name" 2>/dev/null || true
fi fi
if ! [ -d "$brew_prefix/opt/$dep_name" ]; then
sudo ln -sf "$brew_cellar"/"$dep_name"/* "$brew_prefix"/opt/"$dep_name"
fi
} }
restore_library() { restore_library() {
@@ -158,8 +163,6 @@ setup_dependencies() {
if [[ -n "${extensions_array[*]// /}" ]]; then if [[ -n "${extensions_array[*]// /}" ]]; then
add_brew_tap "$php_tap" add_brew_tap "$php_tap"
add_brew_tap "$ext_tap" add_brew_tap "$ext_tap"
# Remove once updated on the images
curl -o "$tap_dir"/"$core_tap"/Formula/ca-certificates.rb -sL https://raw.githubusercontent.com/"$core_tap"/master/Formula/ca-certificates.rb
for extension in "${extensions_array[@]}"; do for extension in "${extensions_array[@]}"; do
IFS=' ' read -r -a dependency_array <<<"$(get_dependencies "$extension")" IFS=' ' read -r -a dependency_array <<<"$(get_dependencies "$extension")"
IFS=' ' read -r -a extension_array <<<"$(echo "${dependency_array[@]}" | grep -Eo "[a-z]*@" | sed 's/@//' | tr '\n' ' ')" IFS=' ' read -r -a extension_array <<<"$(echo "${dependency_array[@]}" | grep -Eo "[a-z]*@" | sed 's/@//' | tr '\n' ' ')"

View File

@@ -4,11 +4,17 @@ link_apt_fast() {
fi fi
} }
add_sudo() {
if ! command -v sudo >/dev/null; then
apt-get install -y sudo || (apt-get update && apt-get install -y sudo)
fi
}
fetch_package() { fetch_package() {
if ! [ -e /tmp/Packages ]; then if ! [ -e /tmp/Packages ]; then
. /etc/os-release . /etc/os-release
deb_build_arch=$(dpkg-architecture -q DEB_BUILD_ARCH) arch=$(dpkg --print-architecture)
curl -o /tmp/Packages.gz -sL "http://ppa.launchpad.net/ondrej/php/ubuntu/dists/$VERSION_CODENAME/main/binary-$deb_build_arch/Packages.gz" curl -o /tmp/Packages.gz -sL "http://ppa.launchpad.net/ondrej/php/ubuntu/dists/$VERSION_CODENAME/main/binary-$arch/Packages.gz"
gzip -df /tmp/Packages.gz gzip -df /tmp/Packages.gz
fi fi
} }
@@ -79,7 +85,7 @@ setup_libraries() {
IFS=' ' read -r -a libraries_array <<<"$libraries" IFS=' ' read -r -a libraries_array <<<"$libraries"
link_apt_fast link_apt_fast
echo "::group::Logs to set up required libraries" echo "::group::Logs to set up required libraries"
sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y "${libraries_array[@]}" sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y "${libraries_array[@]}" || (sudo DEBIAN_FRONTEND=noninteractive apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-fast install --no-install-recommends --no-upgrade -y "${libraries_array[@]}")
ec="$?" ec="$?"
echo "::endgroup::" echo "::endgroup::"
if [ "$ec" -eq "0" ]; then mark="${tick:?}"; else mark="${cross:?}"; fi if [ "$ec" -eq "0" ]; then mark="${tick:?}"; else mark="${cross:?}"; fi
@@ -92,12 +98,14 @@ setup_dependencies() {
extensions=$1 extensions=$1
extension_dir=$2 extension_dir=$2
[[ -z "${extensions// }" ]] && return [[ -z "${extensions// }" ]] && return
add_sudo
IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ php$version-/g")" IFS=' ' read -r -a extensions_array <<<"$(echo "$extensions" | sed -e "s/pdo[_-]//g" -Ee "s/^|,\s*/ php$version-/g")"
. /etc/os-release . /etc/os-release
sudo rm -rf "${ext_config_directory:?}" || true sudo rm -rf "${ext_config_directory:?}" || true
libraries="" libraries=""
extension_packages="" extension_packages=""
for extension_package in "${extensions_array[@]}"; do for extension_package in "${extensions_array[@]}"; do
[[ ! "$extension_package" =~ php[0-9]+\.[0-9]+-[a-zA-Z0-9]+$ ]] && continue
fetch_package fetch_package
libraries="$libraries $(get_dependencies "$extension_package" "lib")" libraries="$libraries $(get_dependencies "$extension_package" "lib")"
IFS=' ' read -r -a dependency_extension_packages_array <<<"$(get_dependencies "$extension_package" "php$version-")" IFS=' ' read -r -a dependency_extension_packages_array <<<"$(get_dependencies "$extension_package" "php$version-")"

View File

@@ -1,5 +1,6 @@
{ {
"compilerOptions": { "compilerOptions": {
"declaration": true,
"esModuleInterop": true, "esModuleInterop": true,
"lib": [ "lib": [
"ESNext" "ESNext"