Compare commits

...

43 Commits

Author SHA1 Message Date
Shivam Mathur e763fddf01 Remove update_formulae in darwin.sh 2020-07-07 00:47:45 +05:30
Shivam Mathur 3cd5c7fd3a Bump version to 1.9.2 2020-07-03 17:46:15 +05:30
Shivam Mathur 988cef62da Add ondrej's PPA on focal 2020-07-03 15:18:11 +05:30
Shivam Mathur be3ee05178 Use shivammathur/extensions tap for grpc, swoole, protobuf on macos 2020-07-03 15:06:42 +05:30
Shivam Mathur a74c3369c5 Bump version to 1.9.1 2020-06-20 01:02:16 +05:30
Shivam Mathur b9ef39c812 Remove dashes from step ids 2020-06-20 01:02:16 +05:30
Shivam Mathur 782615d572 Remove --no-suggest flag in examples 2020-06-20 01:02:15 +05:30
Shivam Mathur 31411b0d4d Improve extension support 2020-06-20 01:02:10 +05:30
Shivam Mathur 6b93e48d83 Fix Xdebug coverage 2020-06-19 17:36:28 +05:30
Shivam Mathur fe504c5e23 Bump version to 1.9.0 2020-06-09 07:17:38 +05:30
Shivam Mathur 61d755bd59 Fix updating powershell profile 2020-06-08 03:02:40 +05:30
Shivam Mathur 3455b4ca37 Add support for updating composer 2020-06-08 02:15:24 +05:30
Shivam Mathur 35c24a7d2f Refactor linux.sh and fetch nightly script 2020-06-08 02:00:47 +05:30
Shivam Mathur da7361cc8f Use Invoke-RestMethod to get tag 2020-06-08 01:36:03 +05:30
Shivam Mathur 3f4c1842a0 Remove empty line in logs 2020-06-08 01:34:16 +05:30
Shivam Mathur 062567eeb1 Setup libwebp-dev with PHP8 on linux 2020-05-18 22:34:49 +05:30
Shivam Mathur 00b0d694d0 Update PPA before phalcon setup 2020-05-18 18:03:51 +05:30
Shivam Mathur 54afb29ef6 Update PPA in add_devtools in linux.sh 2020-05-18 17:43:52 +05:30
Shivam Mathur 41329810ef Bump version to 1.8.8 2020-05-17 03:25:48 +05:30
Shivam Mathur 90a6d88c24 Update README.md 2020-05-17 03:25:42 +05:30
Shivam Mathur 8e6968c49e Fix support for phalcon and gearman 2020-05-15 23:34:59 +05:30
Shivam Mathur 4ce413f558 Improve composer support 2020-05-15 23:34:58 +05:30
Shivam Mathur 533e0949a8 cleanup darwin.sh 2020-05-15 23:34:57 +05:30
Shivam Mathur 0ffe535b8e Refactor win32.ps1 2020-05-15 23:34:56 +05:30
Shivam Mathur 55fe8db60d Refactor linux.sh 2020-05-15 23:34:51 +05:30
Shivam Mathur 5af5f992ec Suppress php-config error 2020-05-13 20:36:57 +05:30
Shivam Mathur e9e024e600 Fix loading PECL extensions 2020-05-05 14:57:36 +05:30
Shivam Mathur a7ea0636d7 Fix icu4c version for PHP 5.6 and PHP 7.0 on darwin 2020-04-30 16:59:19 +05:30
Shivam Mathur c471c0a458 Fix libzip-dev error in PHP 8.0 on ubuntu 2020-04-30 07:36:55 +05:30
Shivam Mathur 277239149a Fetch formulae before setup 2020-04-23 16:16:33 +05:30
Shivam Mathur 9385896f2a Bump version to 1.8.7 2020-04-09 21:35:02 +05:30
Shivam Mathur 9cabd8564d Recompile PCOV for PHP8 2020-04-09 21:26:32 +05:30
Shivam Mathur fdfa901941 Update all lists 2020-03-20 19:04:24 +05:30
Shivam Mathur 527cd148c8 Bump version to 1.8.6 2020-03-18 16:15:06 +05:30
Shivam Mathur 59b6e2b54a Install PhpManager from GitHub repo 2020-03-18 16:15:01 +05:30
Shivam Mathur 5ad0888329 Fix db extensions 2020-03-16 08:04:49 +05:30
Shivam Mathur 3cfc409e14 Bump version to 1.8.5 2020-03-14 09:12:58 +05:30
Shivam Mathur ebc671081f Bump ECMAScript version 2020-03-14 07:56:11 +05:30
Shivam Mathur efae663c0f Change case in README 2020-03-14 07:54:36 +05:30
Shivam Mathur fa8a671e6f Improve code quality 2020-03-14 07:53:43 +05:30
Shivam Mathur 6a4159ba98 Improve extension support 2020-03-14 07:42:02 +05:30
Shivam Mathur 0da52b1327 v1 maintenance release - 1.8.4 2020-03-02 20:40:27 +05:30
Shivam Mathur 3579c7ef28 v1 maintenance release 2020-02-17 03:49:19 +05:30
59 changed files with 4684 additions and 3315 deletions
+2 -9
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",
@@ -12,12 +12,5 @@
"plugin:prettier/recommended", "plugin:prettier/recommended",
"prettier/@typescript-eslint" "prettier/@typescript-eslint"
], ],
"plugins": ["@typescript-eslint", "jest"], "plugins": ["@typescript-eslint", "jest"]
"rules": {
"camelcase": "off",
"require-atomic-updates": "off",
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/camelcase": "off",
"@typescript-eslint/no-unused-vars": "off"
}
} }
-2
View File
@@ -2,7 +2,5 @@
github: shivammathur github: shivammathur
community_bridge: setup-php community_bridge: setup-php
issuehunt: shivammathur
patreon: shivammathur patreon: shivammathur
liberapay: shivammathur
custom: https://www.paypal.me/shivammathur custom: https://www.paypal.me/shivammathur
-33
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.
-->
@@ -1,33 +0,0 @@
---
name: ⚙ Improvement
about: You have some improvement to make setup-php 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.
-->
@@ -1,33 +0,0 @@
---
name: 🎉 New Feature
about: You have implemented some neat idea that you want to make part of setup-php?
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.
-->
+30
View File
@@ -0,0 +1,30 @@
# Security Policy
## Supported Versions
The following versions of this project are supported for security updates.
| Version | Supported |
| ------- | ------------------ |
| 1.9.x | :white_check_mark: |
| 2.3.x | :white_check_mark: |
## Supported PHP Versions
This security policy only applies to the latest patches of the following PHP versions.
| Version | Supported |
| ------- | ------------------ |
| 7.2 | :white_check_mark: |
| 7.3 | :white_check_mark: |
| 7.4 | :white_check_mark: |
| 8.0 | :white_check_mark: |
## Reporting a Vulnerability
If you have found any issues that might have security implications in the versions supported, please send a report privately to [contact@shivammathur.com](mailto:contact@shivammathur.com).
Do not report security reports publicly.
## Tidelift
If you use this GitHub Action through a Tidelift subscription, please refer to [https://tidelift.com/security](https://tidelift.com/security).
@@ -1,92 +0,0 @@
name: Experimental workflow
on:
pull_request:
branches:
- nightly
- master
- develop
- verbose
paths-ignore:
- '**.md'
- 'examples/**'
push:
branches:
- nightly
- master
- develop
- verbose
paths-ignore:
- '**.md'
- 'examples/**'
jobs:
run:
name: Run
runs-on: ${{ matrix.operating-system }}
strategy:
fail-fast: false
matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest]
php-versions: ['8.0']
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 }}
- name: Setup PHP with extensions and custom config
run: node dist/index.js
env:
php-version: ${{ matrix.php-versions }}
extensions: xml, opcache, xdebug, pcov #optional
ini-values: post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata #optional
coverage: pcov
- name: Testing PHP version
run: |
php -v
php -r "if(strpos(phpversion(), '${{ matrix.php-versions }}') === false) {throw new Exception('Wrong PHP version Installed');}"
- name: Testing Composer version
run: |
composer -V
php -r "if(strpos(@exec('composer -V'), 'Composer version') === false) {throw new Exception('Composer not found');}"
- name: Testing Extensions
run: |
php -m
php -r "if(! extension_loaded('mbstring')) {throw new Exception('mbstring not found');}"
php -r "if(! extension_loaded('pcov')) {throw new Exception('PCOV not found');}"
- name: Testing ini values
run: |
php -r "if(ini_get('post_max_size')!='256M') {throw new Exception('post_max_size not added');}"
php -r "if(ini_get('short_open_tag')!=1) {throw new Exception('short_open_tag not added');}"
php -r "if(ini_get('date.timezone')!='Asia/Kolkata') {throw new Exception('date.timezone not added');}"
- name: Test JIT
run: |
php -r "if(! extension_loaded('Zend OPcache')) {throw new Exception('Zend OPcache not found');}"
php -r "if(ini_get('opcache.jit_buffer_size')!='256M') {throw new Exception('opcache.jit_buffer_size not set');}"
php -r "if(ini_get('opcache.jit')!=1235) {throw new Exception('opcache.jit not set');}"
php -r "if(ini_get('pcre.jit')!=1) {throw new Exception('pcre.jit not set');}"
- name: Benchmark JIT
run: |
curl -o bench.php https://raw.githubusercontent.com/php/php-src/master/Zend/bench.php
php bench.php
@@ -2,17 +2,13 @@ name: Main workflow
on: on:
pull_request: pull_request:
branches: branches:
- master - releases/v1
- develop
- verbose
paths-ignore: paths-ignore:
- '**.md' - '**.md'
- 'examples/**' - 'examples/**'
push: push:
branches: branches:
- master - releases/v1
- develop
- verbose
paths-ignore: paths-ignore:
- '**.md' - '**.md'
- 'examples/**' - 'examples/**'
@@ -23,34 +19,12 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] operating-system: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04, windows-latest, macos-latest]
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4'] php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 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 }}
- name: Setup PHP with extensions and custom config - name: Setup PHP with extensions and custom config
run: node dist/index.js run: node dist/index.js
env: env:
+47
View File
@@ -0,0 +1,47 @@
name: Node workflow
on:
pull_request:
branches:
- releases/v1
paths-ignore:
- '**.md'
- 'examples/**'
push:
branches:
- releases/v1
paths-ignore:
- '**.md'
- 'examples/**'
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@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 }}
+7 -6
View File
@@ -1,11 +1,12 @@
{ {
"arrowParens": "avoid",
"bracketSpacing": false,
"endOfLine": "auto",
"parser": "typescript",
"printWidth": 80, "printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true, "semi": true,
"singleQuote": true, "singleQuote": true,
"tabWidth": 2,
"trailingComma": "none", "trailingComma": "none",
"bracketSpacing": false, "useTabs": false
"arrowParens": "avoid", }
"parser": "typescript"
}
+63 -42
View File
@@ -18,25 +18,26 @@ Setup PHP with required extensions, php.ini configuration, code-coverage support
## Contents ## Contents
- [PHP Support](#tada-php-support) - [PHP Support](#tada-php-support)
- [OS/Platform Support](#cloud-osplatform-support) - [GitHub-Hosted Runner Support](#cloud-github-hosted-runner-support)
- [PHP Extension Support](#heavy_plus_sign-php-extension-support) - [PHP Extension Support](#heavy_plus_sign-php-extension-support)
- [Tools Support](#wrench-tools-support) - [Tools Support](#wrench-tools-support)
- [Coverage support](#signal_strength-coverage-support) - [Coverage Support](#signal_strength-coverage-support)
- [Xdebug](#xdebug) - [Xdebug](#xdebug)
- [PCOV](#pcov) - [PCOV](#pcov)
- [Disable coverage](#disable-coverage) - [Disable coverage](#disable-coverage)
- [Usage](#memo-usage) - [Usage](#memo-usage)
- [Basic Setup](#basic-setup) - [Basic Setup](#basic-setup)
- [Matrix Setup](#matrix-setup) - [Matrix Setup](#matrix-setup)
- [Experimental Setup](#experimental-setup) - [Nightly Build Setup](#nightly-build-setup)
- [Thread Safe Setup](#thread-safe-setup) - [Thread Safe Setup](#thread-safe-setup)
- [Cache dependencies](#cache-dependencies) - [Cache Dependencies](#cache-dependencies)
- [Composer GitHub OAuth](#composer-github-oauth)
- [Problem Matchers](#problem-matchers) - [Problem Matchers](#problem-matchers)
- [Examples](#examples) - [Examples](#examples)
- [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)
- [This action uses the following works](#bookmark-this-action-uses-the-following-works) - [Dependencies](#bookmark-dependencies)
- [Further Reading](#bookmark_tabs-further-reading) - [Further Reading](#bookmark_tabs-further-reading)
## :tada: PHP Support ## :tada: PHP Support
@@ -49,18 +50,19 @@ Setup PHP with required extensions, php.ini configuration, code-coverage support
|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`|
**Note:** Specifying `8.0` in `php-version` input installs a nightly build of `PHP 8.0.0-dev` with `PHP JIT`, `Union Types v2` and other [new features](https://wiki.php.net/rfc#php_80 "New features implemented in PHP 8"). See [experimental setup](#experimental-setup) for more information. **Note:** Specifying `8.0` in `php-version` input installs a nightly build of `PHP 8.0.0-dev` with `PHP JIT`, `Union Types v2` and other [new features](https://wiki.php.net/rfc#php_80 "New features implemented in PHP 8"). See [nightly build setup](#nightly-build-setup) for more information.
## :cloud: OS/Platform Support ## :cloud: GitHub-Hosted Runner Support
|Virtual environment|matrix.operating-system| |Virtual environment|YAML workflow label|Pre-installed PHP|
|--- |--- | |--- |--- |--- |
|Windows Server 2019|`windows-latest` or `windows-2019`| |Ubuntu 16.04|`ubuntu-16.04`|`PHP 5.6` to `PHP 7.4`|
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`| |Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`|`PHP 7.1` to `PHP 7.4`|
|Ubuntu 16.04|`ubuntu-16.04`| |Ubuntu 20.04|`ubuntu-20.04`|`PHP 7.4`|
|macOS X Catalina 10.15|`macos-latest` or `macOS-10.15`| |Windows Server 2019|`windows-latest` or `windows-2019`|`PHP 7.4`|
|macOS 10.15 Catalina|`macos-latest` or `macos-10.15`|`PHP 7.4`|
## :heavy_plus_sign: PHP Extension Support ## :heavy_plus_sign: PHP Extension Support
- On `ubuntu` by default extensions which are available as a package can be installed. If the extension is not available as a package but it is on `PECL`, it can be installed by specifying `pecl` in the tools input. - On `ubuntu` by default extensions which are available as a package can be installed. If the extension is not available as a package but it is on `PECL`, it can be installed by specifying `pecl` in the tools input.
@@ -84,27 +86,32 @@ with:
``` ```
To setup a particular version of a tool, specify it in the form `tool:version`. To setup a particular version of a tool, specify it in the form `tool:version`.
Version should be in semver format and a valid release of the tool. Latest stable version of `composer` is setup by default and accepts `v1`, `v2`, `snapshot` and `preview` as versions.
```yaml ```yaml
uses: shivammathur/setup-php@v1 uses: shivammathur/setup-php@v1
with: with:
php-version: '7.4' php-version: '7.4'
tools: php-cs-fixer:2.15.5, phpunit:8.5.1 tools: composer:v2
``` ```
**Note** Version for other tools should be in `semver` format and a valid release of the tool.
- `composer` is setup by default.
- Specifying version for `composer` and `pecl` has no effect, latest version of both tools will be setup.
- If the version specified for the tool is not in semver format, latest version of the tool will be setup.
- Tools which cannot be installed gracefully leave an error message in the logs, the action is not interrupted.
## :signal_strength: Coverage support ```yaml
uses: shivammathur/setup-php@v1
with:
php-version: '7.4'
tools: php-cs-fixer:2.16.2, phpunit:8.5.1
```
Tools which cannot be installed gracefully leave an error message in the logs, the action is not interrupted.
## :signal_strength: Coverage Support
### Xdebug ### Xdebug
Specify `coverage: xdebug` to use `Xdebug`. Specify `coverage: xdebug` to use `Xdebug`.
Runs on all [PHP versions supported](#tada-php-support "List of PHP versions supported on this GitHub Action") except `8.0`. Runs on all [PHP versions supported](#tada-php-support "List of PHP versions supported on this GitHub Action").
```yaml ```yaml
uses: shivammathur/setup-php@v1 uses: shivammathur/setup-php@v1
@@ -129,7 +136,7 @@ with:
coverage: pcov coverage: pcov
``` ```
### Disable coverage ### Disable Coverage
Specify `coverage: none` to disable both `Xdebug` and `PCOV`. Specify `coverage: none` to disable both `Xdebug` and `PCOV`.
Consider disabling the coverage using this PHP action for these reasons. Consider disabling the coverage using this PHP action for these reasons.
@@ -203,12 +210,11 @@ jobs:
tools: php-cs-fixer, phpunit #optional, setup tools globally tools: php-cs-fixer, phpunit #optional, setup tools globally
``` ```
### Experimental Setup ### Nightly Build Setup
> Setup a nightly build of `PHP 8.0.0-dev` from the [master branch](https://github.com/php/php-src/tree/master "Master branch on PHP source repository") of PHP. > Setup a nightly build of `PHP 8.0.0-dev` from the [master branch](https://github.com/php/php-src/tree/master "Master branch on PHP source repository") of PHP.
- This version is currently in development and is an experimental feature on this action. - `PECL` is installed by default with this version on `Ubuntu` and `macOS`.
- `PECL` is installed by default with this version on `ubuntu`.
- Some extensions might not support this version currently. - Some extensions might not support this version currently.
- Refer to this [RFC](https://wiki.php.net/rfc/jit "PHP JIT RFC configuration") for configuring `PHP JIT` on this version. - Refer to this [RFC](https://wiki.php.net/rfc/jit "PHP JIT RFC configuration") for configuring `PHP JIT` on this version.
- Refer to this [list of RFCs](https://wiki.php.net/rfc#php_80 "List of RFCs implemented in PHP8") implemented in this version. - Refer to this [list of RFCs](https://wiki.php.net/rfc#php_80 "List of RFCs implemented in PHP8") implemented in this version.
@@ -248,24 +254,24 @@ jobs:
with: with:
php-version: '7.4' php-version: '7.4'
env: env:
PHPTS: ts # specify ts or nts phpts: ts # specify ts or nts
``` ```
### Cache dependencies ### Cache Dependencies
You can persist composer's internal cache directory using the [`action/cache`](https://github.com/actions/cache "GitHub Action to cache files") GitHub Action. Dependencies cached are loaded directly instead of downloading them while installation. The files cached are available across check-runs and will reduce the workflow execution time. You can persist composer's internal cache directory using the [`action/cache`](https://github.com/actions/cache "GitHub Action to cache files") GitHub Action. Dependencies cached are loaded directly instead of downloading them while installation. The files cached are available across check-runs and will reduce the workflow execution time.
**Note:** Please do not cache `vendor` directory using `action/cache` as that will have side-effects. **Note:** Please do not cache `vendor` directory using `action/cache` as that will have side-effects.
```yaml ```yaml
- name: Get Composer Cache Directory - name: Get composer cache directory
id: composer-cache id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)" run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache dependencies - name: Cache dependencies
uses: actions/cache@v1 uses: actions/cache@v2
with: with:
path: ${{ steps.composer-cache.outputs.dir }} path: ${{ steps.composercache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer- restore-keys: ${{ runner.os }}-composer-
@@ -279,6 +285,19 @@ In the above example, if you support a range of `composer` dependencies and do n
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
``` ```
### Composer GitHub OAuth
If you have a number of workflows which setup multiple tools or have many composer dependencies, you might hit the GitHub's rate limit for composer. To avoid that you can add a `OAuth` token to the composer's config by setting `COMPOSER_TOKEN` environment variable. You can use [`GITHUB_TOKEN`](https://help.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token "GITHUB_TOKEN documentation") secret for this purpose.
```yaml
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
env:
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
### Problem Matchers ### Problem Matchers
#### PHPUnit #### PHPUnit
@@ -290,7 +309,7 @@ You can setup problem matchers for your `PHPUnit` output by adding this step aft
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
``` ```
#### Other tools #### Other Tools
For tools that support `checkstyle` reporting like `phpstan`, `psalm`, `php-cs-fixer` and `phpcs` you can use `cs2pr` to annotate your code. For tools that support `checkstyle` reporting like `phpstan`, `psalm`, `php-cs-fixer` and `phpcs` you can use `cs2pr` to annotate your code.
For examples refer to [cs2pr documentation](https://github.com/staabm/annotate-pull-request-from-checkstyle). For examples refer to [cs2pr documentation](https://github.com/staabm/annotate-pull-request-from-checkstyle).
@@ -338,27 +357,29 @@ Examples for setting up this GitHub Action with different PHP Frameworks/Package
## :scroll: License ## :scroll: License
The scripts and documentation in this project are released under the [MIT License](LICENSE "License for shivammathur/setup-php"). This project has multiple [dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Dependencies for this PHP Action") and uses [various works](#bookmark-this-action-uses-the-following-works "Tools used by this 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/setup-php"). This project has multiple [dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Dependencies for this PHP Action") and uses [various works](#bookmark-dependencies "Tools used by this action"). Their licenses can be found in their respective repositories.
## :+1: Contributions ## :+1: Contributions
Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/setup-php 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/setup-php/issues "Issues reported"). Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "shivammathur/setup-php 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/setup-php/issues "Issues reported").
## :sparkling_heart: Support this project ## :sparkling_heart: Support This Project
If this action helped you. If this action helped you.
- To support this project subscribe on [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon") or sponsor using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal").
- Please star the project and share it with the community. - Please star the project and share it with the community.
- If you blog, write about your experience while using this action. - If you blog, write about your experience of using this action.
- 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 need any help using this, please contact me using [Codementor](https://www.codementor.io/shivammathur "Shivam Mathur Codementor") - If you need any help using this, please contact me using [Codementor](https://www.codementor.io/shivammathur "Shivam Mathur Codementor")
## :bookmark: This action uses the following works ## :bookmark: Dependencies
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Pre-compiled ubuntu packages") - [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
- [shivammathur/php-builder](https://github.com/shivammathur/php-builder "Pre-compiled nightly PHP builds")
- [mlocati/powershell-phpmanager](https://github.com/mlocati/powershell-phpmanager "Package to handle PHP on windows") - [mlocati/powershell-phpmanager](https://github.com/mlocati/powershell-phpmanager "Package to handle PHP on windows")
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Packaging active PHP packages")
- [shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php "Tap for PHP builds for MacOS") - [shivammathur/homebrew-php](https://github.com/shivammathur/homebrew-php "Tap for PHP builds for MacOS")
- [shivammathur/homebrew-extensions](https://github.com/shivammathur/homebrew-extensions "Tap for PHP extensions for MacOS")
- [shivammathur/php-builder](https://github.com/shivammathur/php-builder "Nightly PHP package")
## :bookmark_tabs: Further Reading ## :bookmark_tabs: Further Reading
+2 -15
View File
@@ -36,11 +36,6 @@ describe('Config tests', () => {
expect(win32).toContain('add_extension xdebug'); expect(win32).toContain('add_extension xdebug');
}); });
it('checking addCoverage with Xdebug on windows', async () => {
const win32: string = await coverage.addCoverage('xdebug', '8.0', 'win32');
expect(win32).toContain('Xdebug currently only supports PHP 7.4 or lower');
});
it('checking addCoverage with Xdebug on linux', async () => { it('checking addCoverage with Xdebug on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug', '7.4', 'linux'); const linux: string = await coverage.addCoverage('xdebug', '7.4', 'linux');
expect(linux).toContain('add_extension xdebug'); expect(linux).toContain('add_extension xdebug');
@@ -48,7 +43,8 @@ describe('Config tests', () => {
it('checking addCoverage with Xdebug on linux', async () => { it('checking addCoverage with Xdebug on linux', async () => {
const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux'); const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux');
expect(linux).toContain('Xdebug currently only supports PHP 7.4 or lower'); expect(linux).toContain('add_extension xdebug');
expect(linux).toContain('echo "xdebug.mode=coverage"');
}); });
it('checking addCoverage with Xdebug on darwin', async () => { it('checking addCoverage with Xdebug on darwin', async () => {
@@ -60,15 +56,6 @@ describe('Config tests', () => {
expect(darwin).toContain('add_extension xdebug'); expect(darwin).toContain('add_extension xdebug');
}); });
it('checking addCoverage with Xdebug on darwin', async () => {
const darwin: string = await coverage.addCoverage(
'xdebug',
'8.0',
'darwin'
);
expect(darwin).toContain('Xdebug currently only supports PHP 7.4 or lower');
});
it('checking disableCoverage windows', async () => { it('checking disableCoverage windows', async () => {
const win32 = await coverage.addCoverage('none', '7.4', 'win32'); const win32 = await coverage.addCoverage('none', '7.4', 'win32');
expect(win32).toContain('Remove-Extension xdebug'); expect(win32).toContain('Remove-Extension xdebug');
+36 -11
View File
@@ -1,17 +1,37 @@
import * as extensions from '../src/extensions'; import * as extensions from '../src/extensions';
describe('Extension tests', () => { describe('Extension tests', () => {
it('checking getXdebugVersion', async () => {
expect(await extensions.getXdebugVersion('5.3')).toContain('2.2.7');
expect(await extensions.getXdebugVersion('5.4')).toContain('2.4.1');
expect(await extensions.getXdebugVersion('5.5')).toContain('2.5.5');
expect(await extensions.getXdebugVersion('5.6')).toContain('2.9.6');
});
it('checking addExtensionOnWindows', async () => { it('checking addExtensionOnWindows', async () => {
let win32: string = await extensions.addExtension( let win32: string = await extensions.addExtension(
'xdebug, pcov, phalcon4, ast-beta', 'Xdebug, pcov, sqlite, phalcon4, ast-beta',
'7.4', '7.4',
'win32' 'win32'
); );
expect(win32).toContain('Add-Extension xdebug'); expect(win32).toContain('Add-Extension xdebug');
expect(win32).toContain('Add-Extension pcov'); expect(win32).toContain('Add-Extension pcov');
expect(win32).toContain('Add-Extension sqlite3');
expect(win32).toContain('phalcon.ps1 phalcon4'); expect(win32).toContain('phalcon.ps1 phalcon4');
expect(win32).toContain('Add-Extension ast beta'); expect(win32).toContain('Add-Extension ast beta');
win32 = await extensions.addExtension('mysql', '7.4', 'win32');
expect(win32).toContain('Add-Extension mysqli');
expect(win32).toContain('Add-Extension mysqlnd');
win32 = await extensions.addExtension('mysql', '8.0', 'win32');
expect(win32).toContain('Add-Extension mysqli');
expect(win32).toContain('Add-Extension mysqlnd');
win32 = await extensions.addExtension('mysql', '5.6', 'win32');
expect(win32).toContain('Add-Extension mysql');
expect(win32).toContain('Add-Extension mysqli');
expect(win32).toContain('Add-Extension mysqlnd');
win32 = await extensions.addExtension( win32 = await extensions.addExtension(
'phalcon3, does_not_exist', 'phalcon3, does_not_exist',
'7.2', '7.2',
@@ -27,13 +47,14 @@ describe('Extension tests', () => {
it('checking addExtensionOnLinux', async () => { it('checking addExtensionOnLinux', async () => {
let linux: string = await extensions.addExtension( let linux: string = await extensions.addExtension(
'xdebug, pcov, ast-beta, xdebug-alpha', 'Xdebug, pcov, sqlite, ast-beta, xdebug-alpha',
'7.4', '7.4',
'linux' 'linux'
); );
expect(linux).toContain('update_extension xdebug 2.9.0'); expect(linux).toContain('update_extension xdebug 2.9.2');
expect(linux).toContain('sudo $debconf_fix apt-get install -y php7.4-pcov');
expect(linux).toContain( expect(linux).toContain(
'sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php7.4-pcov' 'sudo $debconf_fix apt-get install -y php7.4-sqlite3'
); );
expect(linux).toContain('add_unstable_extension ast beta extension'); expect(linux).toContain('add_unstable_extension ast beta extension');
expect(linux).toContain( expect(linux).toContain(
@@ -64,12 +85,16 @@ describe('Extension tests', () => {
it('checking addExtensionOnDarwin', async () => { it('checking addExtensionOnDarwin', async () => {
let darwin: string = await extensions.addExtension( let darwin: string = await extensions.addExtension(
'xdebug, pcov, ast-beta', 'Xdebug, pcov, grpc, protobuf, swoole, sqlite, ast-beta',
'7.2', '7.2',
'darwin' 'darwin'
); );
expect(darwin).toContain('sudo pecl install -f xdebug'); expect(darwin).toContain('add_brew_extension xdebug');
expect(darwin).toContain('sudo pecl install -f pcov'); expect(darwin).toContain('add_brew_extension pcov');
expect(darwin).toContain('add_brew_extension grpc');
expect(darwin).toContain('add_brew_extension protobuf');
expect(darwin).toContain('add_brew_extension swoole');
expect(darwin).toContain('sudo pecl install -f sqlite3');
expect(darwin).toContain('add_unstable_extension ast beta extension'); expect(darwin).toContain('add_unstable_extension ast beta extension');
darwin = await extensions.addExtension('phalcon3', '7.0', 'darwin'); darwin = await extensions.addExtension('phalcon3', '7.0', 'darwin');
@@ -82,16 +107,16 @@ describe('Extension tests', () => {
expect(darwin).toContain('sudo pecl install -f pcov'); expect(darwin).toContain('sudo pecl install -f pcov');
darwin = await extensions.addExtension('pcov', '7.2', 'darwin'); darwin = await extensions.addExtension('pcov', '7.2', 'darwin');
expect(darwin).toContain('sudo pecl install -f pcov'); expect(darwin).toContain('add_brew_extension pcov');
darwin = await extensions.addExtension('xdebug', '5.6', 'darwin'); darwin = await extensions.addExtension('xdebug', '5.6', 'darwin');
expect(darwin).toContain('sudo pecl install -f xdebug-2.5.5'); expect(darwin).toContain('add_brew_extension xdebug');
darwin = await extensions.addExtension('xdebug', '7.0', 'darwin'); darwin = await extensions.addExtension('xdebug', '7.0', 'darwin');
expect(darwin).toContain('sudo pecl install -f xdebug-2.9.0'); expect(darwin).toContain('add_brew_extension xdebug');
darwin = await extensions.addExtension('xdebug', '7.2', 'darwin'); darwin = await extensions.addExtension('xdebug', '7.2', 'darwin');
expect(darwin).toContain('sudo pecl install -f xdebug'); expect(darwin).toContain('add_brew_extension xdebug');
darwin = await extensions.addExtension('redis', '5.6', 'darwin'); darwin = await extensions.addExtension('redis', '5.6', 'darwin');
expect(darwin).toContain('sudo pecl install -f redis-2.2.8'); expect(darwin).toContain('sudo pecl install -f redis-2.2.8');
+35 -33
View File
@@ -46,7 +46,7 @@ jest.mock('../src/install', () => ({
case 'darwin': case 'darwin':
case 'linux': case 'linux':
script = await install.build(os_version + '.sh', version, os_version); script = await install.build(os_version + '.sh', version, os_version);
script += 'sh script.sh ' + version + ' ' + __dirname; script += 'bash script.sh ' + version + ' ' + __dirname;
break; break;
case 'win32': case 'win32':
script = await install.build(os_version + '.sh', version, os_version); script = await install.build(os_version + '.sh', version, os_version);
@@ -69,6 +69,8 @@ jest.mock('../src/install', () => ({
* @param extension_csv * @param extension_csv
* @param ini_values_csv * @param ini_values_csv
* @param coverage_driver * @param coverage_driver
* @param tools
* @param pecl
*/ */
function setEnv( function setEnv(
version: string | number, version: string | number,
@@ -91,20 +93,20 @@ function setEnv(
describe('Install', () => { describe('Install', () => {
it('Test install on windows', async () => { it('Test install on windows', async () => {
setEnv('7.0', 'win32', '', '', '', '', ''); setEnv('7.0', 'win32', '', '', '', '', '');
// @ts-ignore
let script: string = await install.run(); let script: string = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('pwsh script.ps1 7.0 ' + __dirname); expect(script).toContain('pwsh script.ps1 7.0 ' + __dirname);
setEnv('7.3', 'win32', '', '', '', '', ''); setEnv('7.3', 'win32', '', '', '', '', '');
// @ts-ignore
script = await install.run(); script = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('pwsh script.ps1 7.3 ' + __dirname); expect(script).toContain('pwsh script.ps1 7.3 ' + __dirname);
setEnv('7.3', 'win32', 'a, b', 'a=b', 'x', '', ''); setEnv('7.3', 'win32', 'a, b', 'a=b', 'x', '', '');
// @ts-ignore
script = await install.run(); script = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('install extensions'); expect(script).toContain('install extensions');
expect(script).toContain('edit php.ini'); expect(script).toContain('edit php.ini');
@@ -114,66 +116,66 @@ describe('Install', () => {
it('Test install on linux', async () => { it('Test install on linux', async () => {
setEnv('7.3', 'linux', '', '', '', '', ''); setEnv('7.3', 'linux', '', '', '', '', '');
// @ts-ignore
let script: string = await install.run();
expect(script).toContain('initial script');
expect(script).toContain('sh script.sh 7.3 ');
setEnv('7.3', 'linux', 'a, b', 'a=b', 'x', 'phpunit', 'true'); let script: string = '' + (await install.run());
// @ts-ignore expect(script).toContain('initial script');
script = await install.run(); expect(script).toContain('bash script.sh 7.3 ');
setEnv('7.4', 'linux', 'a, b', 'a=b', 'x', 'phpunit', 'true');
script = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('install extensions'); expect(script).toContain('install extensions');
expect(script).toContain('edit php.ini'); expect(script).toContain('edit php.ini');
expect(script).toContain('set coverage driver'); expect(script).toContain('set coverage driver');
expect(script).toContain('sh script.sh 7.3'); expect(script).toContain('bash script.sh 7.4');
expect(script).toContain('add_tool'); expect(script).toContain('add_tool');
setEnv('7.3', 'linux', 'a, b', 'a=b', 'x', 'phpunit', ''); setEnv('7.3', 'linux', 'a, b', 'a=b', 'x', 'phpunit', '');
// @ts-ignore
script = await install.run(); script = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('install extensions'); expect(script).toContain('install extensions');
expect(script).toContain('edit php.ini'); expect(script).toContain('edit php.ini');
expect(script).toContain('set coverage driver'); expect(script).toContain('set coverage driver');
expect(script).toContain('sh script.sh 7.3'); expect(script).toContain('bash script.sh 7.3');
expect(script).toContain('add_tool'); expect(script).toContain('add_tool');
}); });
it('Test install on darwin', async () => { it('Test install on darwin', async () => {
setEnv('7.3', 'darwin', '', '', '', '', ''); setEnv('7.3', 'darwin', '', '', '', '', '');
// @ts-ignore
let script: string = await install.run(); let script: string = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('sh script.sh 7.3 ' + __dirname); expect(script).toContain('bash script.sh 7.3 ' + __dirname);
setEnv('7.3', 'darwin', 'a, b', 'a=b', 'x', '', ''); setEnv('7.3', 'darwin', 'a, b', 'a=b', 'x', '', '');
// @ts-ignore
script = await install.run(); script = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('install extensions'); expect(script).toContain('install extensions');
expect(script).toContain('edit php.ini'); expect(script).toContain('edit php.ini');
expect(script).toContain('set coverage driver'); expect(script).toContain('set coverage driver');
expect(script).toContain('sh script.sh 7.3 ' + __dirname); expect(script).toContain('bash script.sh 7.3 ' + __dirname);
}); });
it('Test malformed version inputs', async () => { it('Test malformed version inputs', async () => {
setEnv('7.4.1', 'darwin', '', '', '', '', ''); setEnv('7.4.1', 'darwin', '', '', '', '', '');
// @ts-ignore
let script: string = await install.run(); let script: string = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('sh script.sh 7.4 ' + __dirname); expect(script).toContain('bash script.sh 7.4 ' + __dirname);
setEnv(8.0, 'darwin', '', '', '', '', ''); setEnv(8.0, 'darwin', '', '', '', '', '');
// @ts-ignore
script = await install.run(); script = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('sh script.sh 8.0 ' + __dirname); expect(script).toContain('bash script.sh 8.0 ' + __dirname);
setEnv(8, 'darwin', '', '', '', '', ''); setEnv(8, 'darwin', '', '', '', '', '');
// @ts-ignore
script = await install.run(); script = '' + (await install.run());
expect(script).toContain('initial script'); expect(script).toContain('initial script');
expect(script).toContain('sh script.sh 8.0 ' + __dirname); expect(script).toContain('bash script.sh 8.0 ' + __dirname);
}); });
}); });
-10
View File
@@ -1,16 +1,6 @@
import * as io from '@actions/io'; import * as io from '@actions/io';
import * as path from 'path';
import * as fs from 'fs';
import * as matchers from '../src/matchers'; import * as matchers from '../src/matchers';
async function cleanup(path: string): Promise<void> {
fs.unlink(path, error => {
if (error) {
console.log(error);
}
});
}
jest.mock('@actions/io'); jest.mock('@actions/io');
describe('Matchers', () => { describe('Matchers', () => {
+148 -58
View File
@@ -2,28 +2,34 @@ import * as tools from '../src/tools';
describe('Tools tests', () => { describe('Tools tests', () => {
it('checking getCommand', async () => { it('checking getCommand', async () => {
expect(await tools.getArchiveCommand('linux')).toBe('add_tool '); expect(await tools.getCommand('linux', 'tool')).toBe('add_tool ');
expect(await tools.getArchiveCommand('darwin')).toBe('add_tool '); expect(await tools.getCommand('darwin', 'tool')).toBe('add_tool ');
expect(await tools.getArchiveCommand('win32')).toBe('Add-Tool '); expect(await tools.getCommand('win32', 'tool')).toBe('Add-Tool ');
expect(await tools.getArchiveCommand('fedora')).toContain( expect(await tools.getCommand('fedora', 'tool')).toContain(
'Platform fedora is not supported' 'Platform fedora is not supported'
); );
}); });
it('checking getCommand', async () => { it('checking getCommand', async () => {
expect(await tools.getPackageCommand('linux')).toBe('add_composer_tool '); expect(await tools.getCommand('linux', 'composertool')).toBe(
expect(await tools.getPackageCommand('darwin')).toBe('add_composer_tool '); 'add_composertool '
expect(await tools.getPackageCommand('win32')).toBe('Add-Composer-Tool '); );
expect(await tools.getPackageCommand('fedora')).toContain( expect(await tools.getCommand('darwin', 'composertool')).toBe(
'add_composertool '
);
expect(await tools.getCommand('win32', 'composertool')).toBe(
'Add-Composertool '
);
expect(await tools.getCommand('fedora', 'composertool')).toContain(
'Platform fedora is not supported' 'Platform fedora is not supported'
); );
}); });
it('checking getPECLCommand', async () => { it('checking getCommand', async () => {
expect(await tools.getPECLCommand('linux')).toBe('add_pecl '); expect(await tools.getCommand('linux', 'pecl')).toBe('add_pecl ');
expect(await tools.getPECLCommand('darwin')).toBe('add_pecl '); expect(await tools.getCommand('darwin', 'pecl')).toBe('add_pecl ');
expect(await tools.getPECLCommand('win32')).toBe('Add-PECL '); expect(await tools.getCommand('win32', 'pecl')).toBe('Add-Pecl ');
expect(await tools.getPECLCommand('fedora')).toContain( expect(await tools.getCommand('fedora', 'pecl')).toContain(
'Platform fedora is not supported' 'Platform fedora is not supported'
); );
}); });
@@ -107,22 +113,13 @@ describe('Tools tests', () => {
}); });
it('checking getCodeceptionUriBuilder', async () => { it('checking getCodeceptionUriBuilder', async () => {
expect(await tools.getCodeceptionUriBuilder('3.2.1', '5.6', 'php56')).toBe( expect(await tools.getCodeceptionUriBuilder('3.2.1', 'php56')).toBe(
'releases/3.2.1/php56/codecept.phar' 'releases/3.2.1/php56/codecept.phar'
); );
expect(await tools.getCodeceptionUriBuilder('3.2.1', '7.0', 'php54')).toBe( expect(await tools.getCodeceptionUriBuilder('3.2.1', 'php54')).toBe(
'releases/3.2.1/php54/codecept.phar' 'releases/3.2.1/php54/codecept.phar'
); );
expect(await tools.getCodeceptionUriBuilder('3.2.1', '7.1', 'php56')).toBe( expect(await tools.getCodeceptionUriBuilder('3.2.1', '')).toBe(
'releases/3.2.1/php56/codecept.phar'
);
expect(await tools.getCodeceptionUriBuilder('3.2.1', '7.2', 'php56')).toBe(
'releases/3.2.1/codecept.phar'
);
expect(await tools.getCodeceptionUriBuilder('3.2.1', '7.3', 'php56')).toBe(
'releases/3.2.1/codecept.phar'
);
expect(await tools.getCodeceptionUriBuilder('3.2.1', '7.4', 'php56')).toBe(
'releases/3.2.1/codecept.phar' 'releases/3.2.1/codecept.phar'
); );
}); });
@@ -146,17 +143,59 @@ describe('Tools tests', () => {
expect(await tools.getCodeceptionUri('latest', '7.4')).toBe( expect(await tools.getCodeceptionUri('latest', '7.4')).toBe(
'codecept.phar' 'codecept.phar'
); );
expect(await tools.getCodeceptionUri('3.2.1', '5.6')).toBe( expect(await tools.getCodeceptionUri('4.0.0', '7.4')).toBe(
'releases/3.2.1/php54/codecept.phar' 'releases/4.0.0/codecept.phar'
); );
expect(await tools.getCodeceptionUri('4.3.2', '5.6')).toBe( expect(await tools.getCodeceptionUri('4.0.0', '5.6')).toBe(
'releases/4.3.2/php56/codecept.phar' 'releases/4.0.0/php56/codecept.phar'
); );
expect(await tools.getCodeceptionUri('3.2.1', '7.4')).toBe( expect(await tools.getCodeceptionUri('4.0.0', '7.1')).toBe(
'releases/3.2.1/codecept.phar' 'releases/4.0.0/php56/codecept.phar'
); );
expect(await tools.getCodeceptionUri('4.3.2', '7.4')).toBe( expect(await tools.getCodeceptionUri('3.1.0', '7.4')).toBe(
'releases/4.3.2/codecept.phar' 'releases/3.1.0/codecept.phar'
);
expect(await tools.getCodeceptionUri('3.1.0', '5.6')).toBe(
'releases/3.1.0/php54/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.5.4', '7.4')).toBe(
'releases/2.5.4/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.5.4', '5.6')).toBe(
'releases/2.5.4/php54/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.3.4', '7.4')).toBe(
'releases/2.3.4/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.3.4', '5.4')).toBe(
'releases/2.3.4/php54/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.2.4', '5.6')).toBe(
'releases/2.2.4/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.2.4', '7.4')).toBe(
'releases/2.2.4/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.2.4', '5.4')).toBe(
'releases/2.2.4/php54/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.1.7', '5.6')).toBe(
'releases/2.1.7/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.1.7', '5.4')).toBe(
'releases/2.1.7/php54/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.1.5', '5.4')).toBe(
'releases/2.1.5/codecept.phar'
);
expect(await tools.getCodeceptionUri('2.1.5', '7.4')).toBe(
'releases/2.1.5/codecept.phar'
);
expect(await tools.getCodeceptionUri('1.6.9', '7.4')).toBe(
'releases/1.6.9/codecept.phar'
);
expect(await tools.getCodeceptionUri('1.5.0', '7.4')).toBe(
'releases/1.5.0/codecept.phar'
); );
}); });
@@ -173,11 +212,11 @@ describe('Tools tests', () => {
}); });
it('checking getPhpunitUri', async () => { it('checking getPhpunitUri', async () => {
expect(await tools.getPhpunitUrl('tool', 'latest')).toBe( expect(await tools.getPharUrl('domain', 'tool', '', 'latest')).toBe(
'https://phar.phpunit.de/tool.phar' 'domain/tool.phar'
); );
expect(await tools.getPhpunitUrl('tool', '1.2.3')).toBe( expect(await tools.getPharUrl('domain', 'tool', 'v', '1.2.3')).toBe(
'https://phar.phpunit.de/tool-1.2.3.phar' 'domain/tool-v1.2.3.phar'
); );
}); });
@@ -190,7 +229,7 @@ describe('Tools tests', () => {
); );
}); });
it('checking getDeployerUri', async () => { it('checking addComposer', async () => {
expect(await tools.addComposer(['a', 'b'])).toStrictEqual([ expect(await tools.addComposer(['a', 'b'])).toStrictEqual([
'composer', 'composer',
'a', 'a',
@@ -204,6 +243,41 @@ describe('Tools tests', () => {
expect( expect(
await tools.addComposer(['a', 'b', 'composer:1.2.3']) await tools.addComposer(['a', 'b', 'composer:1.2.3'])
).toStrictEqual(['composer', 'a', 'b']); ).toStrictEqual(['composer', 'a', 'b']);
expect(
await tools.addComposer(['a', 'b', 'composer:snapshot'])
).toStrictEqual(['composer:snapshot', 'a', 'b']);
expect(
await tools.addComposer(['a', 'b', 'composer:preview'])
).toStrictEqual(['composer:preview', 'a', 'b']);
expect(
await tools.addComposer(['a', 'b', 'c', 'composer:1'])
).toStrictEqual(['composer:1', 'a', 'b', 'c']);
expect(
await tools.addComposer(['a', 'b', 'c', 'composer:2'])
).toStrictEqual(['composer:2', 'a', 'b', 'c']);
expect(
await tools.addComposer(['a', 'b', 'c', 'composer:v1'])
).toStrictEqual(['composer:1', 'a', 'b', 'c']);
expect(
await tools.addComposer(['a', 'b', 'c', 'composer:v2'])
).toStrictEqual(['composer:2', 'a', 'b', 'c']);
});
it('checking updateComposer', async () => {
expect(await tools.updateComposer('latest', 'linux')).toContain('');
expect(await tools.updateComposer('stable', 'win32')).toContain('');
expect(await tools.updateComposer('snapshot', 'darwin')).toContain(
'\ncomposer self-update --snapshot'
);
expect(await tools.updateComposer('preview', 'linux')).toContain(
'\ncomposer self-update --preview'
);
expect(await tools.updateComposer('1', 'win32')).toContain(
'\ncomposer self-update --1'
);
expect(await tools.updateComposer('2', 'darwin')).toContain(
'\ncomposer self-update --2'
);
}); });
it('checking getSymfonyUri', async () => { it('checking getSymfonyUri', async () => {
@@ -311,13 +385,13 @@ describe('Tools tests', () => {
'user/', 'user/',
'linux' 'linux'
); );
expect(script).toContain('add_composer_tool tool tool:1.2.3 user/'); expect(script).toContain('add_composertool tool tool:1.2.3 user/');
script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'darwin'); script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'darwin');
expect(script).toContain('add_composer_tool tool tool:1.2.3 user/'); expect(script).toContain('add_composertool tool tool:1.2.3 user/');
script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'win32'); script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'win32');
expect(script).toContain('Add-Composer-Tool tool tool:1.2.3 user/'); expect(script).toContain('Add-Composertool tool tool:1.2.3 user/');
script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'fedora'); script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'fedora');
expect(script).toContain('Platform fedora is not supported'); expect(script).toContain('Platform fedora is not supported');
@@ -330,7 +404,7 @@ describe('Tools tests', () => {
'linux' 'linux'
); );
expect(script).toContain( expect(script).toContain(
'add_tool https://github.com/composer/composer/releases/latest/download/composer.phar composer' 'add_tool https://getcomposer.org/composer-stable.phar composer'
); );
expect(script).toContain( expect(script).toContain(
'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr' 'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr'
@@ -351,8 +425,8 @@ describe('Tools tests', () => {
'add_tool https://github.com/symfony/cli/releases/latest/download/symfony_linux_amd64 symfony' 'add_tool https://github.com/symfony/cli/releases/latest/download/symfony_linux_amd64 symfony'
); );
expect(script).toContain('add_pecl'); expect(script).toContain('add_pecl');
expect(script).toContain('add_composer_tool phinx phinx robmorgan/'); expect(script).toContain('add_composertool phinx phinx robmorgan/');
expect(script).toContain('add_composer_tool phinx phinx:1.2.3 robmorgan/'); expect(script).toContain('add_composertool phinx phinx:1.2.3 robmorgan/');
expect(script).toContain('add_devtools'); expect(script).toContain('add_devtools');
expect(script).toContain('add_log "$tick" "php-config" "Added"'); expect(script).toContain('add_log "$tick" "php-config" "Added"');
expect(script).toContain('add_log "$tick" "phpize" "Added"'); expect(script).toContain('add_log "$tick" "phpize" "Added"');
@@ -364,7 +438,7 @@ describe('Tools tests', () => {
'darwin' 'darwin'
); );
expect(script).toContain( expect(script).toContain(
'add_tool https://github.com/composer/composer/releases/latest/download/composer.phar composer' 'add_tool https://getcomposer.org/composer-stable.phar composer'
); );
expect(script).toContain( expect(script).toContain(
'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/download/1.2.3/cs2pr cs2pr' 'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/download/1.2.3/cs2pr cs2pr'
@@ -384,12 +458,12 @@ describe('Tools tests', () => {
expect(script).toContain( expect(script).toContain(
'https://github.com/vimeo/psalm/releases/latest/download/psalm.phar psalm' 'https://github.com/vimeo/psalm/releases/latest/download/psalm.phar psalm'
); );
expect(script).toContain('add_composer_tool phinx phinx robmorgan/'); expect(script).toContain('add_composertool phinx phinx robmorgan/');
expect(script).toContain( expect(script).toContain(
'add_tool https://github.com/phar-io/phive/releases/download/1.2.3/phive-1.2.3.phar phive' 'add_tool https://github.com/phar-io/phive/releases/download/1.2.3/phive-1.2.3.phar phive'
); );
expect(script).toContain( expect(script).toContain(
'add_composer_tool composer-prefetcher composer-prefetcher:1.2.3 narrowspark/automatic-' 'add_composertool composer-prefetcher composer-prefetcher:1.2.3 narrowspark/automatic-'
); );
expect(script).toContain( expect(script).toContain(
'add_tool https://github.com/symfony/cli/releases/latest/download/symfony_darwin_amd64 symfony' 'add_tool https://github.com/symfony/cli/releases/latest/download/symfony_darwin_amd64 symfony'
@@ -407,7 +481,7 @@ describe('Tools tests', () => {
'win32' 'win32'
); );
expect(script).toContain( expect(script).toContain(
'Add-Tool https://github.com/composer/composer/releases/latest/download/composer.phar composer' 'Add-Tool https://getcomposer.org/composer-stable.phar composer'
); );
expect(script).toContain( expect(script).toContain(
'Add-Tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr' 'Add-Tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr'
@@ -415,13 +489,11 @@ describe('Tools tests', () => {
expect(script).toContain( expect(script).toContain(
'Add-Tool https://deployer.org/deployer.phar deployer' 'Add-Tool https://deployer.org/deployer.phar deployer'
); );
expect(script).toContain( expect(script).toContain('Add-Composertool prestissimo prestissimo hirak/');
'Add-Composer-Tool prestissimo prestissimo hirak/'
);
expect(script).toContain( expect(script).toContain(
'Add-Tool https://github.com/phpmd/phpmd/releases/latest/download/phpmd.phar phpmd' 'Add-Tool https://github.com/phpmd/phpmd/releases/latest/download/phpmd.phar phpmd'
); );
expect(script).toContain('Add-Composer-Tool phinx phinx robmorgan/'); expect(script).toContain('Add-Composertool phinx phinx robmorgan/');
expect(script).toContain( expect(script).toContain(
'Add-Tool https://github.com/phar-io/phive/releases/download/0.13.2/phive-0.13.2.phar phive' 'Add-Tool https://github.com/phar-io/phive/releases/download/0.13.2/phive-0.13.2.phar phive'
); );
@@ -440,14 +512,32 @@ describe('Tools tests', () => {
'win32' 'win32'
); );
expect(script).toContain( expect(script).toContain(
'Add-Tool https://github.com/composer/composer/releases/latest/download/composer.phar composer' 'Add-Tool https://getcomposer.org/composer-stable.phar composer'
); );
expect(script).toContain('Add-Composertool prestissimo prestissimo hirak/');
expect(script).toContain('Add-Composertool phinx phinx robmorgan/');
expect(script).toContain( expect(script).toContain(
'Add-Composer-Tool prestissimo prestissimo hirak/' 'Add-Composertool composer-prefetcher composer-prefetcher narrowspark/automatic-'
);
expect(script).toContain('Add-Composer-Tool phinx phinx robmorgan/');
expect(script).toContain(
'Add-Composer-Tool composer-prefetcher composer-prefetcher narrowspark/automatic-'
); );
}); });
it('checking composer setup', async () => {
let script: string = await tools.addTools(
'composer, composer:v1',
'7.4',
'linux'
);
expect(script).toContain(
'add_tool https://getcomposer.org/composer-stable.phar composer'
);
expect(script).toContain('composer self-update --1');
script = await tools.addTools('composer:preview', '7.4', 'linux');
expect(script).toContain('composer self-update --preview');
script = await tools.addTools(
'composer:v1, composer:preview, composer:snapshot',
'7.4',
'linux'
);
expect(script).toContain('composer self-update --snapshot');
});
}); });
+13 -8
View File
@@ -29,7 +29,9 @@ describe('Utils tests', () => {
it('checking asyncForEach', async () => { it('checking asyncForEach', async () => {
const array: Array<string> = ['a', 'b', 'c']; const array: Array<string> = ['a', 'b', 'c'];
let concat = ''; let concat = '';
await utils.asyncForEach(array, async function(str: string): Promise<void> { await utils.asyncForEach(array, async function (
str: string
): Promise<void> {
concat += str; concat += str;
}); });
expect(concat).toBe('abc'); expect(concat).toBe('abc');
@@ -55,12 +57,12 @@ describe('Utils tests', () => {
path.join(__dirname, '../src/scripts/win32.ps1'), path.join(__dirname, '../src/scripts/win32.ps1'),
'utf8' 'utf8'
); );
expect(await utils.readScript('darwin.sh', '7.4', 'darwin')).toBe(darwin); expect(await utils.readScript('darwin.sh')).toBe(darwin);
expect(await utils.readScript('darwin.sh', '7.3', 'darwin')).toBe(darwin); expect(await utils.readScript('darwin.sh')).toBe(darwin);
expect(await utils.readScript('linux.sh', '7.4', 'linux')).toBe(linux); expect(await utils.readScript('linux.sh')).toBe(linux);
expect(await utils.readScript('linux.sh', '7.3', 'linux')).toBe(linux); expect(await utils.readScript('linux.sh')).toBe(linux);
expect(await utils.readScript('win32.ps1', '7.4', 'win32')).toBe(win32); expect(await utils.readScript('win32.ps1')).toBe(win32);
expect(await utils.readScript('win32.ps1', '7.3', 'win32')).toBe(win32); expect(await utils.readScript('win32.ps1')).toBe(win32);
}); });
it('checking writeScripts', async () => { it('checking writeScripts', async () => {
@@ -68,7 +70,10 @@ describe('Utils tests', () => {
const runner_dir: string = process.env['RUNNER_TOOL_CACHE'] || ''; const runner_dir: string = process.env['RUNNER_TOOL_CACHE'] || '';
const script_path: string = path.join(runner_dir, 'test.sh'); const script_path: string = path.join(runner_dir, 'test.sh');
await utils.writeScript('test.sh', testString); await utils.writeScript('test.sh', testString);
await fs.readFile(script_path, function(error: Error | null, data: Buffer) { await fs.readFile(script_path, function (
error: Error | null,
data: Buffer
) {
expect(testString).toBe(data.toString()); expect(testString).toBe(data.toString());
}); });
await cleanup(script_path); await cleanup(script_path);
+4 -4
View File
@@ -3,6 +3,7 @@ author: shivammathur
description: 'Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer' description: 'Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer'
branding: branding:
color: 'purple' color: 'purple'
icon: 'play-circle'
inputs: inputs:
php-version: php-version:
description: 'Setup PHP version.' description: 'Setup PHP version.'
@@ -20,18 +21,17 @@ inputs:
tools: tools:
description: 'Setup popular tools globally.' description: 'Setup popular tools globally.'
required: false required: false
# Deprecated options, do not use. Will not be supported in v2 which will be released around February 1, 2020.
extension-csv: extension-csv:
description: 'Deprecated! Use extensions instead.' description: 'Deprecated! Use extensions instead.'
deprecationMessage: 'The extension-csv property will not be supported in v2. Use extensions instead.' deprecationMessage: 'The extension-csv property is deprecated. Use extensions instead.'
required: false required: false
ini-values-csv: ini-values-csv:
description: 'Deprecated! Use ini-values instead.' description: 'Deprecated! Use ini-values instead.'
deprecationMessage: 'The ini-values-csv property will not be supported in v2. Use ini-values instead.' deprecationMessage: 'The ini-values-csv property is deprecated. Use ini-values instead.'
required: false required: false
pecl: pecl:
description: 'Deprecated! Use tools instead to setup PECL.' description: 'Deprecated! Use tools instead to setup PECL.'
deprecationMessage: 'The pecl property will not be supported in v2. Specify pecl in tools instead.' deprecationMessage: 'The pecl property is deprecated. Specify pecl in tools instead.'
required: false required: false
runs: runs:
using: 'node12' using: 'node12'
+517 -459
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -17,16 +17,16 @@ jobs:
with: with:
php-version: ${{ matrix.php-versions }} php-version: ${{ matrix.php-versions }}
- name: Get composer cache directory - name: Get composer cache directory
id: composer-cache id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)" run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- uses: actions/cache@v1 - uses: actions/cache@v2
with: with:
path: ${{ steps.composer-cache.outputs.dir }} path: ${{ steps.composercache.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed. # Use composer.json for key, if composer.lock is not committed.
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer- restore-keys: ${{ runner.os }}-composer-
- name: Install Composer dependencies - name: Install Composer dependencies
run: composer install -n --prefer-dist run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: PHP test - name: PHP test
run: composer test run: composer test
+14 -12
View File
@@ -34,20 +34,22 @@ jobs:
# Install memcached if using ext-memcached # Install memcached if using ext-memcached
extensions: mbstring, intl, redis, pdo_mysql extensions: mbstring, intl, redis, pdo_mysql
coverage: pcov coverage: pcov
- name: Start mysql service
run: sudo /etc/init.d/mysql start
- name: Get composer cache directory - name: Get composer cache directory
id: composer-cache id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)" run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache composer dependencies - name: Cache composer dependencies
uses: actions/cache@v1 uses: actions/cache@v2
with: with:
path: ${{ steps.composer-cache.outputs.dir }} path: ${{ steps.composercache.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed. # Use composer.json for key, if composer.lock is not committed.
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer- restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies - name: Install dependencies
run: | run: |
composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader composer install --no-progress --prefer-dist --optimize-autoloader
composer run-script post-install-cmd --no-interaction composer run-script post-install-cmd --no-interaction
# Add a step to run migrations if required # Add a step to run migrations if required
- name: Test with phpunit - name: Test with phpunit
@@ -68,18 +70,18 @@ jobs:
php-version: '7.3' php-version: '7.3'
extensions: mbstring, intl extensions: mbstring, intl
- name: Get composer cache directory - name: Get composer cache directory
id: composer-cache id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)" run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache composer dependencies - name: Cache composer dependencies
uses: actions/cache@v1 uses: actions/cache@v2
with: with:
path: ${{ steps.composer-cache.outputs.dir }} path: ${{ steps.composercache.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed. # Use composer.json for key, if composer.lock is not committed.
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer- restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies - name: Install dependencies
run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: PHP CodeSniffer - name: PHP CodeSniffer
run: composer cs-check run: composer cs-check
@@ -96,17 +98,17 @@ jobs:
extensions: mbstring, intl extensions: mbstring, intl
tools: phpstan tools: phpstan
- name: Get composer cache directory - name: Get composer cache directory
id: composer-cache id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)" run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache composer dependencies - name: Cache composer dependencies
uses: actions/cache@v1 uses: actions/cache@v2
with: with:
path: ${{ steps.composer-cache.outputs.dir }} path: ${{ steps.composercache.outputs.dir }}
# Use composer.json for key, if composer.lock is not committed. # Use composer.json for key, if composer.lock is not committed.
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer- restore-keys: ${{ runner.os }}-composer-
- name: Install dependencies - name: Install dependencies
run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader run: composer install --no-progress --prefer-dist --optimize-autoloader
- name: Static Analysis using PHPStan - name: Static Analysis using PHPStan
run: phpstan analyse --no-progress src/ run: phpstan analyse --no-progress src/
+12 -12
View File
@@ -35,19 +35,19 @@ jobs:
extensions: mbstring, intl, redis, pdo_pgsql extensions: mbstring, intl, redis, pdo_pgsql
coverage: pcov coverage: pcov
- name: Get composer cache directory - name: Get composer cache directory
id: composer-cache id: composercache
run: echo "::set-output name=dir::$(composer config cache-files-dir)" run: echo "::set-output name=dir::$(composer config cache-files-dir)"
- name: Cache composer dependencies - name: Cache composer dependencies
uses: actions/cache@v1 uses: actions/cache@v2
with: