mirror of
https://github.com/shivammathur/setup-php.git
synced 2025-07-03 05:33:16 +07:00
Compare commits
397 Commits
Author | SHA1 | Date | |
---|---|---|---|
44cf056ba8 | |||
9bfde13f48 | |||
e38eccad04 | |||
fa211a9d07 | |||
5865982519 | |||
e201830bdd | |||
5c4074b01a | |||
48f537d6d0 | |||
bc40a61480 | |||
3d5fae7917 | |||
d0591e6d7c | |||
b108a66489 | |||
f0a05b4f6e | |||
5070ebd871 | |||
bea4065e11 | |||
c3875408ad | |||
1d1c0f2595 | |||
1ac189066e | |||
74cdfb97c1 | |||
ee05ca54f6 | |||
12b1061a6b | |||
1c6058bc18 | |||
2f8045c593 | |||
6597a6a15b | |||
1cc85eb670 | |||
6cba0a914f | |||
c43f842cf3 | |||
11e062bf23 | |||
dee3cfee50 | |||
26b0fcc6cd | |||
ab62fff526 | |||
446bccb14d | |||
29d99c6866 | |||
1444e002ab | |||
03b97e24e9 | |||
f7fb800623 | |||
5593bd4bd3 | |||
3160874a27 | |||
db0bbd209b | |||
d920044a54 | |||
818ca89f55 | |||
8876ac788f | |||
0390a48770 | |||
274e348895 | |||
37d7b37f43 | |||
d058d52012 | |||
17983e66e5 | |||
33a005dd90 | |||
1870ffc08c | |||
70fd71ab48 | |||
2f1900f7bc | |||
19497a0597 | |||
5b2e081bc0 | |||
66fa82fbca | |||
4aa42214b1 | |||
1e2c96a4b4 | |||
3e8d887b0d | |||
a3d5500a6a | |||
e763fddf01 | |||
3cd5c7fd3a | |||
988cef62da | |||
be3ee05178 | |||
a74c3369c5 | |||
b9ef39c812 | |||
782615d572 | |||
31411b0d4d | |||
6b93e48d83 | |||
fe504c5e23 | |||
61d755bd59 | |||
3455b4ca37 | |||
35c24a7d2f | |||
da7361cc8f | |||
3f4c1842a0 | |||
062567eeb1 | |||
00b0d694d0 | |||
54afb29ef6 | |||
41329810ef | |||
90a6d88c24 | |||
8e6968c49e | |||
4ce413f558 | |||
533e0949a8 | |||
0ffe535b8e | |||
55fe8db60d | |||
5af5f992ec | |||
e9e024e600 | |||
a7ea0636d7 | |||
c471c0a458 | |||
277239149a | |||
9385896f2a | |||
9cabd8564d | |||
fdfa901941 | |||
527cd148c8 | |||
59b6e2b54a | |||
5ad0888329 | |||
3cfc409e14 | |||
ebc671081f | |||
efae663c0f | |||
fa8a671e6f | |||
6a4159ba98 | |||
0da52b1327 | |||
3579c7ef28 | |||
d9cf6f5ad6 | |||
ea50c7c0a2 | |||
6ca549dcaa | |||
d3760be2cc | |||
3454287b87 | |||
88c7757dc8 | |||
48cfea3f3e | |||
43cfa2b1a8 | |||
76cecacc5e | |||
d6e173ffc6 | |||
26701f2ec8 | |||
e934fe28b8 | |||
d384d9fe7e | |||
4eeaf5f99e | |||
fd2392db56 | |||
494dde7189 | |||
706dfca1e6 | |||
d613c975f6 | |||
fbe1419ce4 | |||
c844c7b6e4 | |||
8e5cc09df9 | |||
f4f8aec1f2 | |||
b44b7344e0 | |||
e01b2f0bf7 | |||
f7f8ecb931 | |||
4f0d810cbc | |||
47335179aa | |||
63c4aea452 | |||
898b6fa1f9 | |||
747c8838bc | |||
9d6b61c5af | |||
5108c81610 | |||
e58c704985 | |||
e9c783eef0 | |||
b44e5e009f | |||
8489dbf4de | |||
f23ae2e6f7 | |||
d2b233e45f | |||
320474a245 | |||
65ccfb36dc | |||
88fb99b592 | |||
9e7bc5c91f | |||
ca2f547a35 | |||
9f21c80d24 | |||
c4317135df | |||
a2dd688679 | |||
bd214a2dca | |||
2ee4653d1c | |||
0b3e0f451d | |||
0bfa897634 | |||
71db1e2cf1 | |||
16d1cd4766 | |||
1193cd100b | |||
e839a77d8c | |||
552df3f2b0 | |||
3109c941eb | |||
aa8706a5bf | |||
9afdee42e8 | |||
aa0e9403d8 | |||
5b00f068f3 | |||
8f39d3eddd | |||
9d87d1fd14 | |||
07ae2343d0 | |||
7b8bf7af6a | |||
0ac6f76d36 | |||
6c6203b683 | |||
0c9f8a8e7e | |||
1705daea72 | |||
58fbc33c3a | |||
3f42b7d5fb | |||
dd4f0db7bf | |||
7d026bfa6b | |||
6a70f864ec | |||
8e1cde2d0a | |||
de32d8b95f | |||
273096b82f | |||
4c045616f4 | |||
935e74fb40 | |||
a507be73b5 | |||
673dcaff6d | |||
2cbfd4fb41 | |||
0969980399 | |||
1fa2905bc6 | |||
790a48c30d | |||
4b69160eff | |||
7f805f22af | |||
f2972dcf18 | |||
2d488f53fd | |||
421187c870 | |||
1798f4d615 | |||
8039546df3 | |||
c6ad3d1a70 | |||
922f1e27b8 | |||
2d3750b36e | |||
51c7527bd8 | |||
2bf7ab0207 | |||
b3a84fc51e | |||
1330950cd5 | |||
afb57fca4e | |||
50344f4883 | |||
2b027bd9bc | |||
8f8207a1ca | |||
87e6c70743 | |||
e3d18718a9 | |||
cfa7bc51cd | |||
ade633f0da | |||
2cabcf2941 | |||
9ce4bd6f1b | |||
190ae49ac1 | |||
032bc86056 | |||
704c5180a4 | |||
e4fc767f9c | |||
1cf6a369bb | |||
14acb26bdc | |||
3ff7f9cedc | |||
98e937751c | |||
31b338b199 | |||
9e32964a24 | |||
4dcf2b117f | |||
6d8250310d | |||
3164116a42 | |||
747d45cb52 | |||
4b7ad1ca81 | |||
31ef16e586 | |||
dd1def7620 | |||
693a73d8da | |||
965eb91efd | |||
db9f610623 | |||
24fb306a50 | |||
919fe77b43 | |||
914c51cfb6 | |||
8d8c2bd524 | |||
7ef437ee9d | |||
0871fbb11b | |||
3039a720ed | |||
7f32ab318e | |||
ddcacf4760 | |||
2f951ef5cd | |||
5a081357b4 | |||
c4a64dff61 | |||
aad33a8e35 | |||
eae890b1b2 | |||
8fbd2ea6bb | |||
46161660dc | |||
de68427afb | |||
4ba36c5432 | |||
99e2d8d309 | |||
929f9cd52d | |||
4dba50d3af | |||
1c258f399f | |||
e05bc317ec | |||
44815f1f73 | |||
22f5ad47d2 | |||
a29956826a | |||
c11d023c03 | |||
cade5f7157 | |||
7964656607 | |||
970e2d5ebb | |||
5b09e1195e | |||
6fdecd40be | |||
159a09794e | |||
0be846de83 | |||
981c662f5d | |||
71c631cffb | |||
47387dd6e9 | |||
fec9df11d6 | |||
03f36220f4 | |||
1db0b0651d | |||
3f6c88dec7 | |||
2b938d931a | |||
71bd88f604 | |||
242082a22f | |||
b9db11a072 | |||
f381d2384c | |||
63d8fa1a9e | |||
dd1c34be39 | |||
1eb8e8f5cd | |||
0000679cbb | |||
7c5f2ab8e9 | |||
9d5e8ddc70 | |||
77bc79bd22 | |||
02c5ec11cc | |||
d2e09be6ce | |||
013ddc75a3 | |||
25abc4c776 | |||
4000f65b59 | |||
e14155415a | |||
9f16995a6f | |||
24ecbee4ea | |||
c71102b8a0 | |||
0815f5a8bb | |||
e5076cee70 | |||
bd85a2a227 | |||
976fb6996a | |||
06e916db9d | |||
46ac6f2211 | |||
47d1da0476 | |||
dfabf8ce29 | |||
9304663cff | |||
878561f9a8 | |||
9550c7aa45 | |||
ebeb82f894 | |||
aa2af38672 | |||
d27b4a7bc7 | |||
aeb5831c32 | |||
cb5e07baff | |||
9469267fb3 | |||
1d6dab3cd1 | |||
20d1b1c6f1 | |||
0d8d5d2f2c | |||
16267e1982 | |||
91d14c7068 | |||
340ab0b95f | |||
75c0e130e8 | |||
57a0907a18 | |||
3315fa09dc | |||
b132b4eb7c | |||
9145972d5c | |||
0ac43c03b2 | |||
46f009cce1 | |||
8d9a12ba84 | |||
76e0150bb5 | |||
ffc5b0249d | |||
a6aaa1db78 | |||
62beed29e3 | |||
fce9311522 | |||
b2e7a49dd5 | |||
99bbaa2a58 | |||
f7f5b1a7e1 | |||
e755fb7a69 | |||
3087ceb811 | |||
05e2b0d1e9 | |||
dd5c977988 | |||
c1c0acc338 | |||
409e055931 | |||
46a875ad7e | |||
7e81c058fb | |||
754ab9515b | |||
f866c880c2 | |||
eb21cb8fb3 | |||
aee6b953c3 | |||
21c3c8db47 | |||
c0e0d9d98e | |||
5ab8ec4a99 | |||
ec3c220bb2 | |||
17d90ace86 | |||
ba5306eea9 | |||
06929bdf4c | |||
e97e822eff | |||
0f97f445fb | |||
507cc5e95d | |||
2a30f9d208 | |||
eaf140ca8b | |||
dcd432d918 | |||
91a03a2865 | |||
ca33947c62 | |||
932b66f3fc | |||
651d2619bb | |||
16f13a69eb | |||
9134867822 | |||
36104f0983 | |||
a0b0e58cb3 | |||
c6f956927a | |||
83cc9a4bcf | |||
e63fd8e122 | |||
d33e2e06e4 | |||
7fcf39f8e9 | |||
43a64813f3 | |||
ba83ab2e67 | |||
9cfe4e665e | |||
585f7a1fd2 | |||
43178a7254 | |||
db44db4b97 | |||
601f50f55e | |||
e71c06a64f | |||
c5825452ec | |||
339c69c9a5 | |||
e4a37d0f16 | |||
a398f54da4 | |||
69f9b777e1 | |||
02867faba4 | |||
35b0788556 | |||
2484a27666 | |||
42de8649eb | |||
f6674883c6 | |||
738fa3dfee | |||
9616296853 | |||
b45c80e26a | |||
764f8c8453 | |||
c5513d9a78 | |||
1c6748567c | |||
76bcc07458 | |||
8ba904fa24 | |||
13824286db | |||
e5083c779b | |||
2f94ea1a79 |
16
.eslintrc.json
Normal file
16
.eslintrc.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"env": { "node": true, "jest": true },
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": { "ecmaVersion": 2019, "sourceType": "module" },
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:@typescript-eslint/eslint-recommended",
|
||||
"plugin:@typescript-eslint/recommended",
|
||||
"plugin:import/errors",
|
||||
"plugin:import/warnings",
|
||||
"plugin:import/typescript",
|
||||
"plugin:prettier/recommended",
|
||||
"prettier/@typescript-eslint"
|
||||
],
|
||||
"plugins": ["@typescript-eslint", "jest"]
|
||||
}
|
76
.github/CODE_OF_CONDUCT.md
vendored
Normal file
76
.github/CODE_OF_CONDUCT.md
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at contact@shivammathur.com. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
69
.github/CONTRIBUTING.md
vendored
Normal file
69
.github/CONTRIBUTING.md
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
# Contributing to setup-php
|
||||
|
||||
## Contributor Code of Conduct
|
||||
|
||||
Please note that this project is released with a [Contributor Code of Conduct](CODE_OF_CONDUCT.md). By participating in this project you agree to abide by its terms.
|
||||
|
||||
## Workflow
|
||||
|
||||
* Fork the project.
|
||||
* Make your bug fix or feature addition.
|
||||
* Add tests for it. This is important so we don't break it in a future version unintentionally.
|
||||
* Send a pull request to the develop branch.
|
||||
|
||||
Please make sure that you have [set up your user name and email address](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup) for use with Git. Strings such as `silly nick name <root@localhost>` look really stupid in the commit history of a project.
|
||||
|
||||
Due to time constraints, you may not always get a quick response. Please do not take delays personal and feel free to remind.
|
||||
|
||||
## Coding Guidelines
|
||||
|
||||
## Using setup-php from a Git checkout
|
||||
|
||||
The following commands can be used to perform the initial checkout of setup-php:
|
||||
|
||||
```bash
|
||||
$ git clone https://github.com/shivammathur/setup-php.git
|
||||
|
||||
$ cd setup-php
|
||||
```
|
||||
|
||||
Install setup-php dependencies using [npm](https://www.npmjs.com/):
|
||||
|
||||
```bash
|
||||
$ npm install
|
||||
```
|
||||
|
||||
If you are using `Windows` configure `git` to handle line endings.
|
||||
|
||||
```cmd
|
||||
git config --local core.autocrlf true
|
||||
```
|
||||
|
||||
This project comes with `.prettierrc.json` and `eslintrc.json` configuration files. Please run the following commands to fix and verify the code quality.
|
||||
|
||||
```bash
|
||||
$ npm run format
|
||||
$ npm run lint
|
||||
```
|
||||
|
||||
## Running the test suite
|
||||
|
||||
After following the steps shown above, The `setup-php` tests in the `__tests__` directory can be run using this command:
|
||||
|
||||
```bash
|
||||
$ npm test
|
||||
```
|
||||
|
||||
## Creating a release
|
||||
|
||||
Create a release before you push your changes.
|
||||
|
||||
```bash
|
||||
$ npm run release
|
||||
```
|
||||
|
||||
## Reporting issues
|
||||
|
||||
Please submit the issue using the appropriate template provided for a bug report or a feature request:
|
||||
|
||||
* [Issues](https://github.com/shivammathur/setup-php/issues)
|
7
.github/FUNDING.yml
vendored
Normal file
7
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
open_collective: setup-php
|
||||
tidelift: "npm/setup-php"
|
||||
community_bridge: setup-php
|
||||
patreon: shivammathur
|
||||
custom: https://www.paypal.me/shivammathur
|
23
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
23
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Please provide the GitHub Action `.yml` file.
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I want to improve [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
38
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
38
.github/PULL_REQUEST_TEMPLATE.md
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
---
|
||||
name: 🐞 Bug Fix, ⚙ Improvement or 🎉 New Feature
|
||||
about: You found a bug, want to improve something or add a new feature
|
||||
labels: bug or 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 and all code covered.
|
||||
|
||||
> In case this PR edits any scripts:
|
||||
|
||||
- [ ] I have checked the edited scripts for syntax.
|
||||
- [ ] I have tested the changes in an integration test (If yes, provide workflow YAML and link).
|
||||
|
||||
<!--
|
||||
- Please target the develop branch when submitting the pull request.
|
||||
-->
|
30
.github/SECURITY.md
vendored
Normal file
30
.github/SECURITY.md
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
The following versions of this project are supported for security updates.
|
||||
|
||||
| Version | Supported |
|
||||
| -------- | ------------------ |
|
||||
| 1.10.x | :white_check_mark: |
|
||||
| 2.8.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).
|
56
.github/workflows/main-workflow.yml
vendored
Normal file
56
.github/workflows/main-workflow.yml
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
name: Main workflow
|
||||
on:
|
||||
workflow_dispatch:
|
||||
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-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', '8.0']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- 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
|
||||
|
||||
- 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('xml')) {throw new Exception('xml not found');}"
|
||||
php -r "if(! extension_loaded('Xdebug')) {throw new Exception('Xdebug not found');}"
|
||||
php -r "if(phpversion()>=7.1 && ! extension_loaded('pcov')) {throw new Exception('PCOV not found');}"
|
||||
- name: Testing ini values
|
||||
run: |
|
||||
php -r "if(ini_get('memory_limit')!='-1') {throw new Exception('memory_limit not disabled');}"
|
||||
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');}"
|
47
.github/workflows/node-workflow.yml
vendored
Normal file
47
.github/workflows/node-workflow.yml
vendored
Normal 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 }}
|
27
.github/workflows/workflow.yml
vendored
27
.github/workflows/workflow.yml
vendored
@ -1,27 +0,0 @@
|
||||
name: Main workflow
|
||||
on: [push]
|
||||
jobs:
|
||||
run:
|
||||
name: Run
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
max-parallel: 15
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
|
||||
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
|
||||
- name: Set Node.js 10.x
|
||||
uses: actions/setup-node@master
|
||||
with:
|
||||
version: 10.x
|
||||
|
||||
- name: Installing NPM
|
||||
run: npm install
|
||||
|
||||
- name: Installing PHP
|
||||
run: node lib/install.js
|
||||
env:
|
||||
php-version: ${{ matrix.php-versions }}
|
93
.gitignore
vendored
93
.gitignore
vendored
@ -0,0 +1,93 @@
|
||||
# Explicitly not ignoring node_modules so that they are included in package downloaded by runner
|
||||
node_modules/
|
||||
__tests__/runner/*
|
||||
lib/
|
||||
|
||||
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
lerna-debug.log*
|
||||
|
||||
# Diagnostic reports (https://nodejs.org/api/report.html)
|
||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
*.lcov
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
jspm_packages/
|
||||
|
||||
# TypeScript v1 declaration files
|
||||
typings/
|
||||
|
||||
# TypeScript cache
|
||||
*.tsbuildinfo
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.test
|
||||
|
||||
# parcel-bundler cache (https://parceljs.org/)
|
||||
.cache
|
||||
|
||||
# next.js build output
|
||||
.next
|
||||
|
||||
# nuxt.js build output
|
||||
.nuxt
|
||||
|
||||
# vuepress build output
|
||||
.vuepress/dist
|
||||
|
||||
# Serverless directories
|
||||
.serverless/
|
||||
|
||||
# FuseBox cache
|
||||
.fusebox/
|
||||
|
||||
# DynamoDB Local files
|
||||
.dynamodb/
|
@ -1,11 +1,12 @@
|
||||
{
|
||||
"arrowParens": "avoid",
|
||||
"bracketSpacing": false,
|
||||
"endOfLine": "auto",
|
||||
"parser": "typescript",
|
||||
"printWidth": 80,
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"semi": true,
|
||||
"singleQuote": true,
|
||||
"tabWidth": 2,
|
||||
"trailingComma": "none",
|
||||
"bracketSpacing": false,
|
||||
"arrowParens": "avoid",
|
||||
"parser": "typescript"
|
||||
}
|
||||
"useTabs": false
|
||||
}
|
2
LICENSE
2
LICENSE
@ -1,7 +1,7 @@
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2019 shivammathur and contributors
|
||||
Copyright (c) 2019-2020 shivammathur and contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
453
README.md
453
README.md
@ -1,69 +1,440 @@
|
||||
# setup-php
|
||||
|
||||
<p align="left">
|
||||
<a href="https://github.com/shivammathur/setup-php"><img alt="GitHub Actions status" src="https://github.com/shivammathur/setup-php/workflows/Main%20workflow/badge.svg"></a>
|
||||
<p align="center">
|
||||
<a href="https://github.com/marketplace/actions/setup-php-action" target="_blank">
|
||||
<img src="https://repository-images.githubusercontent.com/206578964/e0a18480-dc65-11e9-8dd3-b9ffbf5575fe" alt="Setup PHP in GitHub Actions" width="400">
|
||||
</a>
|
||||
</p>
|
||||
|
||||
This action sets up a php environment along with composer on multiple platforms for use in github actions.
|
||||
<h1 align="center">Setup PHP in GitHub Actions</h1>
|
||||
|
||||
# PHP Version Support
|
||||
- 5.6
|
||||
- 7.0
|
||||
- 7.1
|
||||
- 7.2
|
||||
- 7.3
|
||||
<p align="center">
|
||||
<a href="https://github.com/shivammathur/setup-php" title="GitHub action to setup PHP"><img alt="GitHub Actions status" src="https://github.com/shivammathur/setup-php/workflows/Main%20workflow/badge.svg"></a>
|
||||
<a href="https://codecov.io/gh/shivammathur/setup-php" title="Code coverage"><img alt="Codecov Code Coverage" src="https://img.shields.io/codecov/c/github/shivammathur/setup-php?logo=codecov"></a>
|
||||
<a href="https://github.com/shivammathur/setup-php/blob/master/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg"></a>
|
||||
<a href="#tada-php-support" title="PHP Versions Supported"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-%3E%3D%205.6-8892BF.svg"></a>
|
||||
</p>
|
||||
|
||||
# Operating Systems Support
|
||||
- Linux (ubuntu-latest)
|
||||
- Windows (windows-latest)
|
||||
- MacOS (macOS-latest)
|
||||
Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer in [GitHub Actions](https://github.com/features/actions "GitHub Actions"). This action gives you a cross platform interface to setup the PHP environment you need to test your application. Refer to [Usage](#memo-usage "How to use this") section and [examples](#examples "Examples of use") to see how to use this.
|
||||
|
||||
# Usage
|
||||
## Contents
|
||||
|
||||
See [action.yml](action.yml)
|
||||
- [PHP Support](#tada-php-support)
|
||||
- [GitHub-Hosted Runner Support](#cloud-github-hosted-runner-support)
|
||||
- [PHP Extension Support](#heavy_plus_sign-php-extension-support)
|
||||
- [Tools Support](#wrench-tools-support)
|
||||
- [Coverage Support](#signal_strength-coverage-support)
|
||||
- [Xdebug](#xdebug)
|
||||
- [PCOV](#pcov)
|
||||
- [Disable coverage](#disable-coverage)
|
||||
- [Usage](#memo-usage)
|
||||
- [Basic Setup](#basic-setup)
|
||||
- [Matrix Setup](#matrix-setup)
|
||||
- [Nightly Build Setup](#nightly-build-setup)
|
||||
- [Thread Safe Setup](#thread-safe-setup)
|
||||
- [Cache Dependencies](#cache-dependencies)
|
||||
- [Composer GitHub OAuth](#composer-github-oauth)
|
||||
- [Problem Matchers](#problem-matchers)
|
||||
- [Examples](#examples)
|
||||
- [License](#scroll-license)
|
||||
- [Contributions](#1-contributions)
|
||||
- [Support This project](#sparkling_heart-support-this-project)
|
||||
- [Dependencies](#bookmark-dependencies)
|
||||
- [Further Reading](#bookmark_tabs-further-reading)
|
||||
|
||||
## :tada: PHP Support
|
||||
|
||||
|PHP Version|Stability|Release Support|
|
||||
|--- |--- |--- |
|
||||
|5.6|`Stable`|`End of life`|
|
||||
|7.0|`Stable`|`End of life`|
|
||||
|7.1|`Stable`|`End of life`|
|
||||
|7.2|`Stable`|`Security fixes only`|
|
||||
|7.3|`Stable`|`Active`|
|
||||
|7.4|`Stable`|`Active`|
|
||||
|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 [nightly build setup](#nightly-build-setup) for more information.
|
||||
|
||||
## :cloud: GitHub-Hosted Runner Support
|
||||
|
||||
|Virtual environment|YAML workflow label|Pre-installed PHP|
|
||||
|--- |--- |--- |
|
||||
|Ubuntu 16.04|`ubuntu-16.04`|`PHP 5.6` to `PHP 7.4`|
|
||||
|Ubuntu 18.04|`ubuntu-latest` or `ubuntu-18.04`|`PHP 7.1` to `PHP 7.4`|
|
||||
|Ubuntu 20.04|`ubuntu-20.04`|`PHP 7.4`|
|
||||
|Windows Server 2019|`windows-latest` or `windows-2019`|`PHP 7.4`|
|
||||
|macOS 10.15 Catalina|`macos-latest` or `macos-10.15`|`PHP 7.4`|
|
||||
|macOS 11.0 Big Sur|`macos-11.0`|`PHP 7.4`|
|
||||
|
||||
|
||||
## :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 `windows` extensions which have `windows` binary on `PECL` can be installed.
|
||||
- On `macOS` extensions which are on `PECL` can be installed.
|
||||
- Extensions which are installed along with PHP if specified are enabled.
|
||||
- Extensions on `PECL` which do not have a latest stable version, their pre-release versions can be installed by suffixing the extension with its state i.e `alpha`, `beta`, `devel` or `snapshot` separated by a `-` like `msgpack-beta`.
|
||||
- Extensions which cannot be installed gracefully leave an error message in the logs, the action is not interrupted.
|
||||
|
||||
## :wrench: Tools Support
|
||||
|
||||
These tools can be setup globally using the `tools` input.
|
||||
|
||||
`codeception`, `composer`, `composer-prefetcher`, `cs2pr`, `deployer`, `pecl`, `phinx`, `phive`, `phpcbf`, `phpcpd`, `php-config`, `php-cs-fixer`, `phpcs`, `phpize`, `phpmd`, `phpstan`, `phpunit`, `prestissimo`, `psalm`, `symfony`
|
||||
|
||||
```yaml
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: php-cs-fixer, phpunit
|
||||
```
|
||||
|
||||
To set up a particular version of a tool, specify it in the form `tool:version`.
|
||||
|
||||
The latest stable version of `composer` is set up by default. You can set up the required `composer` version by specifying `v1`, `v2`, `snapshot` or `preview` as versions or the exact version in semver format.
|
||||
|
||||
```yaml
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: composer:v2
|
||||
```
|
||||
|
||||
If you have specified composer plugins `prestissimo` or `composer-prefetcher` in tools, the latest stable version of `composer v1` will be setup. Unless some of your packages require `composer v1`, it is recommended to drop `prestissimo` and use `composer v2`.
|
||||
|
||||
Version for other tools should be in `semver` format and a valid release of the tool.
|
||||
|
||||
```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
|
||||
|
||||
Specify `coverage: xdebug` to use `Xdebug`.
|
||||
Runs on all [PHP versions supported](#tada-php-support "List of PHP versions supported on this GitHub Action").
|
||||
|
||||
```yaml
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.4'
|
||||
coverage: xdebug
|
||||
```
|
||||
|
||||
### PCOV
|
||||
|
||||
Specify `coverage: pcov` to use `PCOV` and disable `Xdebug`.
|
||||
It is much faster than `Xdebug`.
|
||||
`PCOV` needs `PHP >= 7.1`.
|
||||
If your source code directory is other than `src`, `lib` or, `app`, specify `pcov.directory` using the `ini-values` input.
|
||||
|
||||
|
||||
```yaml
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.4'
|
||||
ini-values: pcov.directory=api #optional, see above for usage.
|
||||
coverage: pcov
|
||||
```
|
||||
|
||||
### Disable Coverage
|
||||
|
||||
Specify `coverage: none` to disable both `Xdebug` and `PCOV`.
|
||||
Consider disabling the coverage using this PHP action for these reasons.
|
||||
|
||||
- You are not generating coverage reports while testing.
|
||||
- It will remove `Xdebug`, which will have a positive impact on PHP performance.
|
||||
- You are using `phpdbg` for running your tests.
|
||||
|
||||
```yaml
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.4'
|
||||
coverage: none
|
||||
```
|
||||
|
||||
## :memo: Usage
|
||||
|
||||
Inputs supported by this GitHub Action.
|
||||
|
||||
- php-version `required`
|
||||
- extensions `optional`
|
||||
- ini-values `optional`
|
||||
- coverage `optional`
|
||||
- tools `optional`
|
||||
|
||||
See [action.yml](action.yml "Metadata for this GitHub Action") and usage below for more info.
|
||||
|
||||
### Basic Setup
|
||||
|
||||
> Setup a particular PHP version.
|
||||
|
||||
Basic:
|
||||
```yaml
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Installing PHP
|
||||
uses: shivammathur/setup-php@master
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: 7.3
|
||||
- name: Check PHP Version
|
||||
run: php -v
|
||||
- name: Check Composer Version
|
||||
run: composer -V
|
||||
php-version: '7.4'
|
||||
extensions: mbstring, intl #optional, setup extensions
|
||||
ini-values: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
|
||||
coverage: xdebug #optional, setup coverage driver
|
||||
tools: php-cs-fixer, phpunit #optional, setup tools globally
|
||||
```
|
||||
|
||||
Matrix Testing:
|
||||
### Matrix Setup
|
||||
|
||||
> Setup multiple PHP versions on multiple operating systems.
|
||||
|
||||
```yaml
|
||||
jobs:
|
||||
run:
|
||||
run:
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
max-parallel: 15
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
|
||||
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3']
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
|
||||
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@master
|
||||
- name: Install PHP
|
||||
uses: shivammathur/setup-php@master
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
- name: Check PHP Version
|
||||
run: php -v
|
||||
|
||||
extensions: mbstring, intl #optional, setup extensions
|
||||
ini-values: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
|
||||
coverage: xdebug #optional, setup coverage driver
|
||||
tools: php-cs-fixer, phpunit #optional, setup tools globally
|
||||
```
|
||||
|
||||
# License
|
||||
### Nightly Build Setup
|
||||
|
||||
The scripts and documentation in this project are released under the [MIT License](LICENSE)
|
||||
> 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.
|
||||
|
||||
# Contributions
|
||||
- `PECL` is installed by default with this version on `Ubuntu` and `macOS`.
|
||||
- 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 [list of RFCs](https://wiki.php.net/rfc#php_80 "List of RFCs implemented in PHP8") implemented in this version.
|
||||
|
||||
Contributions are welcome! See [Contributor's Guide](docs/contributors.md)
|
||||
```yaml
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '8.0'
|
||||
extensions: mbstring #optional, setup extensions
|
||||
ini-values: opcache.jit_buffer_size=256M, opcache.jit=1235, pcre.jit=1 #optional, setup php.ini configuration
|
||||
coverage: pcov #optional, setup PCOV, Xdebug does not support this version yet.
|
||||
tools: php-cs-fixer, phpunit #optional, setup tools globally
|
||||
```
|
||||
|
||||
### Thread Safe Setup
|
||||
|
||||
- `NTS` versions are setup by default.
|
||||
- On `ubuntu` and `macOS` only NTS versions are supported.
|
||||
- On `windows` both `TS` and `NTS` versions are supported.
|
||||
|
||||
```yaml
|
||||
jobs:
|
||||
run:
|
||||
runs-on: windows-latest
|
||||
name: Setup PHP TS on Windows
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.4'
|
||||
env:
|
||||
phpts: ts # specify ts or nts
|
||||
```
|
||||
|
||||
### 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.
|
||||
|
||||
**Note:** Please do not cache `vendor` directory using `action/cache` as that will have side-effects.
|
||||
|
||||
```yaml
|
||||
- name: Get Composer Cache Directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
|
||||
- name: Install Dependencies
|
||||
run: composer install --prefer-dist
|
||||
```
|
||||
|
||||
- If you do not commit `composer.lock`, you can use the hash of `composer.json` as the key for your cache.
|
||||
```yaml
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
```
|
||||
|
||||
- If you support a range of `composer` dependencies and use `prefer-lowest` and `prefer-stable` options, you can store them in your matrix add them to the keys.
|
||||
```yaml
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}-${{ matrix.prefer }}-
|
||||
restore-keys: ${{ runner.os }}-composer-${{ matrix.prefer }}-
|
||||
```
|
||||
|
||||
### 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 are `json` configurations which identify errors and warnings in your logs and surface that information prominently in the GitHub Actions UI by highlighting them and creating code annotations.
|
||||
|
||||
#### PHP
|
||||
|
||||
Setup problem matchers for your `PHP` output by adding this step after the `setup-php` step.
|
||||
|
||||
```yaml
|
||||
- name: Setup problem matchers for PHP
|
||||
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
|
||||
```
|
||||
|
||||
#### PHPUnit
|
||||
|
||||
Setup problem matchers for your `PHPUnit` output by adding this step after the `setup-php` step.
|
||||
|
||||
```yaml
|
||||
- name: Setup problem matchers for PHPUnit
|
||||
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
|
||||
```
|
||||
|
||||
#### PHPStan
|
||||
|
||||
PHPStan supports error reporting in GitHub Actions, so no problem matchers are required.
|
||||
|
||||
```yaml
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: phpstan
|
||||
|
||||
- name: Run PHPStan
|
||||
run: phpstan analyse src
|
||||
```
|
||||
|
||||
#### Psalm
|
||||
|
||||
Psalm supports error reporting in GitHub Actions with an output format `github`.
|
||||
|
||||
```yaml
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: psalm
|
||||
|
||||
- name: Run Psalm
|
||||
run: psalm --output-format=github
|
||||
```
|
||||
|
||||
#### Tools with checkstyle support
|
||||
|
||||
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).
|
||||
|
||||
> Here is an example with `phpcs`.
|
||||
|
||||
```yaml
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: '7.4'
|
||||
tools: cs2pr, phpcs
|
||||
|
||||
- name: Run phpcs
|
||||
run: phpcs -q --report=checkstyle src | cs2pr
|
||||
```
|
||||
|
||||
### Examples
|
||||
|
||||
Examples for setting up this GitHub Action with different PHP Frameworks/Packages.
|
||||
|
||||
|Framework/Package|Runs on|Workflow|
|
||||
|--- |--- |--- |
|
||||
|CakePHP with `MySQL` and `Redis`|`ubuntu`|[cakephp-mysql.yml](./examples/cakephp-mysql.yml "GitHub Action for CakePHP with MySQL and Redis")|
|
||||
|CakePHP with `PostgreSQL` and `Redis`|`ubuntu`|[cakephp-postgres.yml](./examples/cakephp-postgres.yml "GitHub Action for CakePHP with Postgres and Redis")|
|
||||
|CakePHP without services|`macOS`, `ubuntu` and `windows`|[cakephp.yml](./examples/cakephp.yml "GitHub Action for CakePHP without services")|
|
||||
|CodeIgniter|`macOS`, `ubuntu` and `windows`|[codeigniter.yml](./examples/codeigniter.yml "GitHub Action for CodeIgniter")|
|
||||
|Laravel with `MySQL` and `Redis`|`ubuntu`|[laravel-mysql.yml](./examples/laravel-mysql.yml "GitHub Action for Laravel with MySQL and Redis")|
|
||||
|Laravel with `PostgreSQL` and `Redis`|`ubuntu`|[laravel-postgres.yml](./examples/laravel-postgres.yml "GitHub Action for Laravel with PostgreSQL and Redis")|
|
||||
|Laravel without services|`macOS`, `ubuntu` and `windows`|[laravel.yml](./examples/laravel.yml "GitHub Action for Laravel without services")|
|
||||
|Lumen with `MySQL` and `Redis`|`ubuntu`|[lumen-mysql.yml](./examples/lumen-mysql.yml "GitHub Action for Lumen with MySQL and Redis")|
|
||||
|Lumen with `PostgreSQL` and `Redis`|`ubuntu`|[lumen-postgres.yml](./examples/lumen-postgres.yml "GitHub Action for Lumen with PostgreSQL and Redis")|
|
||||
|Lumen without services|`macOS`, `ubuntu` and `windows`|[lumen.yml](./examples/lumen.yml "GitHub Action for Lumen without services")|
|
||||
|Phalcon with `MySQL`|`ubuntu`|[phalcon-mysql.yml](./examples/phalcon-mysql.yml "GitHub Action for Phalcon with MySQL")|
|
||||
|Phalcon with `PostgreSQL`|`ubuntu`|[phalcon-postgres.yml](./examples/phalcon-postgres.yml "GitHub Action for Phalcon with PostgreSQL")|
|
||||
|Roots/bedrock|`ubuntu`|[bedrock.yml](./examples/bedrock.yml "GitHub Action for Wordpress Development using @roots/bedrock")|
|
||||
|Roots/sage|`ubuntu`|[sage.yml](./examples/sage.yml "GitHub Action for Wordpress Development using @roots/sage")|
|
||||
|Slim Framework|`macOS`, `ubuntu` and `windows`|[slim-framework.yml](./examples/slim-framework.yml "GitHub Action for Slim Framework")|
|
||||
|Symfony with `MySQL`|`ubuntu`|[symfony-mysql.yml](./examples/symfony-mysql.yml "GitHub Action for Symfony with MySQL")|
|
||||
|Symfony with `PostgreSQL`|`ubuntu`|[symfony-postgres.yml](./examples/symfony-postgres.yml "GitHub Action for Symfony with PostgreSQL")|
|
||||
|Symfony without services|`macOS`, `ubuntu` and `windows`|[symfony.yml](./examples/symfony.yml "GitHub Action for Symfony without services")|
|
||||
|Yii2 Starter Kit with `MySQL`|`ubuntu`|[yii2-mysql.yml](./examples/yii2-mysql.yml "GitHub Action for Yii2 Starter Kit with MySQL")|
|
||||
|Yii2 Starter Kit with `PostgreSQL`|`ubuntu`|[yii2-postgres.yml](./examples/yii2-postgres.yml "GitHub Action for Yii2 Starter Kit with PostgreSQL")|
|
||||
|Zend Framework|`macOS`, `ubuntu` and `windows`|[zend-framework.yml](./examples/zend-framework.yml "GitHub Action for Zend Framework")|
|
||||
|
||||
## :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](#bookmark-dependencies "Dependencies for this PHP Action"). Their licenses can be found in their respective repositories.
|
||||
- The logo for `setup-php` is a derivative work of [php.net logo](https://www.php.net/download-logos.php) and is licensed under the [CC BY-SA 4.0 License](https://creativecommons.org/licenses/by-sa/4.0/ "Creative Commons License").
|
||||
|
||||
## :+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").
|
||||
|
||||
## :sparkling_heart: Support This Project
|
||||
|
||||
If this action helped you.
|
||||
|
||||
- Sponsor the project by subscribing on [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon") or by contributing using [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal"). This project is also available as part of the [Tidelift Subscription](https://tidelift.com/subscription/pkg/npm-setup-php?utm_source=npm-setup-php&utm_medium=referral&utm_campaign=enterprise&utm_term=repo "Tidelift Subscription for setup-php") to support delivering enterprise-level maintenance.
|
||||
- Please star the project and dependencies. If you blog, please share your experience of using this action with the community.
|
||||
|
||||
## :bookmark: Dependencies
|
||||
|
||||
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")
|
||||
- [aaronparker/VcRedist](https://github.com/aaronparker/VcRedist "VcRedist PowerShell package")
|
||||
- [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-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
|
||||
|
||||
- [About GitHub Actions](https://github.com/features/actions "GitHub Actions")
|
||||
- [GitHub Actions Syntax](https://help.github.com/en/articles/workflow-syntax-for-github-actions "GitHub Actions Syntax")
|
||||
- [Other Awesome Actions](https://github.com/sdras/awesome-actions "List of Awesome GitHub Actions")
|
52
__tests__/config.test.ts
Normal file
52
__tests__/config.test.ts
Normal file
@ -0,0 +1,52 @@
|
||||
import * as config from '../src/config';
|
||||
|
||||
describe('Config tests', () => {
|
||||
it('checking addINIValuesOnWindows', async () => {
|
||||
let win32: string = await config.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'win32'
|
||||
);
|
||||
expect(win32).toContain(
|
||||
'Add-Content C:\\tools\\php\\php.ini "post_max_size=256M\nshort_open_tag=On\ndate.timezone=Asia/Kolkata"'
|
||||
);
|
||||
|
||||
win32 = await config.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'openbsd'
|
||||
);
|
||||
expect(win32).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
|
||||
it('checking addINIValuesOnLinux', async () => {
|
||||
let linux: string = await config.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'linux',
|
||||
true
|
||||
);
|
||||
expect(linux).toContain(
|
||||
'echo "post_max_size=256M\nshort_open_tag=On\ndate.timezone=Asia/Kolkata"'
|
||||
);
|
||||
|
||||
linux = await config.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'openbsd'
|
||||
);
|
||||
expect(linux).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
|
||||
it('checking addINIValuesOnDarwin', async () => {
|
||||
let darwin: string = await config.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'darwin'
|
||||
);
|
||||
expect(darwin).toContain(
|
||||
'echo "post_max_size=256M\nshort_open_tag=On\ndate.timezone=Asia/Kolkata"'
|
||||
);
|
||||
|
||||
darwin = await config.addINIValues(
|
||||
'post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata',
|
||||
'openbsd'
|
||||
);
|
||||
expect(darwin).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
});
|
84
__tests__/coverage.test.ts
Normal file
84
__tests__/coverage.test.ts
Normal file
@ -0,0 +1,84 @@
|
||||
import * as coverage from '../src/coverage';
|
||||
|
||||
jest.mock('../src/extensions', () => ({
|
||||
addExtension: jest.fn().mockImplementation(extension => {
|
||||
return 'add_extension ' + extension + '\n';
|
||||
})
|
||||
}));
|
||||
|
||||
describe('Config tests', () => {
|
||||
it('checking addCoverage with PCOV on windows', async () => {
|
||||
let win32: string = await coverage.addCoverage('PCOV', '7.4', 'win32');
|
||||
expect(win32).toContain('add_extension pcov');
|
||||
expect(win32).toContain('Remove-Extension xdebug');
|
||||
|
||||
win32 = await coverage.addCoverage('pcov', '7.0', 'win32');
|
||||
expect(win32).toContain('PHP 7.1 or newer is required');
|
||||
|
||||
win32 = await coverage.addCoverage('pcov', '5.6', 'win32');
|
||||
expect(win32).toContain('PHP 7.1 or newer is required');
|
||||
});
|
||||
|
||||
it('checking addCoverage with PCOV on linux', async () => {
|
||||
const linux: string = await coverage.addCoverage('pcov', '7.4', 'linux');
|
||||
expect(linux).toContain('add_extension pcov');
|
||||
expect(linux).toContain('remove_extension xdebug');
|
||||
});
|
||||
|
||||
it('checking addCoverage with PCOV on darwin', async () => {
|
||||
const darwin: string = await coverage.addCoverage('pcov', '7.4', 'darwin');
|
||||
expect(darwin).toContain('add_extension pcov');
|
||||
expect(darwin).toContain('remove_extension xdebug');
|
||||
});
|
||||
|
||||
it('checking addCoverage with Xdebug on windows', async () => {
|
||||
const win32: string = await coverage.addCoverage('xdebug', '7.4', 'win32');
|
||||
expect(win32).toContain('add_extension xdebug');
|
||||
});
|
||||
|
||||
it('checking addCoverage with Xdebug on linux', async () => {
|
||||
const linux: string = await coverage.addCoverage('xdebug', '7.4', 'linux');
|
||||
expect(linux).toContain('add_extension xdebug');
|
||||
});
|
||||
|
||||
it('checking addCoverage with Xdebug on linux', async () => {
|
||||
const linux: string = await coverage.addCoverage('xdebug', '8.0', 'linux');
|
||||
expect(linux).toContain('add_extension xdebug');
|
||||
expect(linux).toContain('echo "xdebug.mode=coverage"');
|
||||
});
|
||||
|
||||
it('checking addCoverage with Xdebug on darwin', async () => {
|
||||
const darwin: string = await coverage.addCoverage(
|
||||
'xdebug',
|
||||
'7.4',
|
||||
'darwin'
|
||||
);
|
||||
expect(darwin).toContain('add_extension xdebug');
|
||||
});
|
||||
|
||||
it('checking disableCoverage windows', async () => {
|
||||
const win32 = await coverage.addCoverage('none', '7.4', 'win32');
|
||||
expect(win32).toContain('Remove-Extension xdebug');
|
||||
expect(win32).toContain('Remove-Extension pcov');
|
||||
});
|
||||
|
||||
it('checking disableCoverage on linux', async () => {
|
||||
const linux: string = await coverage.addCoverage('none', '7.4', 'linux');
|
||||
expect(linux).toContain('remove_extension xdebug');
|
||||
expect(linux).toContain('remove_extension pcov');
|
||||
});
|
||||
|
||||
it('checking disableCoverage on darwin', async () => {
|
||||
const darwin: string = await coverage.addCoverage('none', '7.4', 'darwin');
|
||||
expect(darwin).toContain('remove_extension xdebug');
|
||||
expect(darwin).toContain('remove_extension pcov');
|
||||
});
|
||||
|
||||
it('checking no or invalid coverage driver', async () => {
|
||||
let nocov: string = await coverage.addCoverage('nocov', '7.x', 'any');
|
||||
expect(nocov).toEqual('');
|
||||
|
||||
nocov = await coverage.addCoverage('', '7.x', 'any');
|
||||
expect(nocov).toEqual('');
|
||||
});
|
||||
});
|
133
__tests__/extensions.test.ts
Normal file
133
__tests__/extensions.test.ts
Normal file
@ -0,0 +1,133 @@
|
||||
import * as extensions from '../src/extensions';
|
||||
|
||||
describe('Extension tests', () => {
|
||||
it('checking addExtensionOnWindows', async () => {
|
||||
let win32: string = await extensions.addExtension(
|
||||
'Xdebug, pcov, sqlite, phalcon4, ast-beta',
|
||||
'7.4',
|
||||
'win32'
|
||||
);
|
||||
expect(win32).toContain('Add-Extension xdebug');
|
||||
expect(win32).toContain('Add-Extension pcov');
|
||||
expect(win32).toContain('Add-Extension sqlite3');
|
||||
expect(win32).toContain('phalcon.ps1 phalcon4');
|
||||
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(
|
||||
'phalcon3, does_not_exist',
|
||||
'7.2',
|
||||
'win32',
|
||||
true
|
||||
);
|
||||
expect(win32).toContain('phalcon.ps1 phalcon3');
|
||||
expect(win32).toContain('Add-Extension does_not_exist');
|
||||
|
||||
win32 = await extensions.addExtension('xdebug', '7.2', 'openbsd');
|
||||
expect(win32).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
|
||||
it('checking addExtensionOnLinux', async () => {
|
||||
let linux: string = await extensions.addExtension(
|
||||
'Xdebug, pcov, sqlite, ast-beta, xdebug-alpha',
|
||||
'7.4',
|
||||
'linux'
|
||||
);
|
||||
expect(linux).toContain('sudo $debconf_fix apt-get install -y php7.4-pcov');
|
||||
expect(linux).toContain(
|
||||
'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 xdebug alpha zend_extension'
|
||||
);
|
||||
|
||||
linux = await extensions.addExtension('gearman', '7.0', 'linux');
|
||||
expect(linux).toContain('gearman.sh 7.0');
|
||||
linux = await extensions.addExtension('gearman', '7.1', 'linux');
|
||||
expect(linux).toContain('gearman.sh 7.1');
|
||||
|
||||
linux = await extensions.addExtension('gearman', '7.2', 'linux');
|
||||
expect(linux).toContain('gearman.sh 7.2');
|
||||
|
||||
linux = await extensions.addExtension('gearman', '7.3', 'linux');
|
||||
expect(linux).toContain('gearman.sh 7.3');
|
||||
|
||||
linux = await extensions.addExtension('gearman', '7.4', 'linux');
|
||||
expect(linux).toContain('gearman.sh 7.4');
|
||||
|
||||
linux = await extensions.addExtension('xdebug', '7.2', 'openbsd');
|
||||
expect(linux).toContain('Platform openbsd is not supported');
|
||||
|
||||
linux = await extensions.addExtension('phalcon3, phalcon4', '7.3', 'linux');
|
||||
expect(linux).toContain('phalcon.sh phalcon3 7.3');
|
||||
expect(linux).toContain('phalcon.sh phalcon4 7.3');
|
||||
});
|
||||
|
||||
it('checking addExtensionOnDarwin', async () => {
|
||||
let darwin: string = await extensions.addExtension(
|
||||
'Xdebug, pcov, grpc, igbinary, imagick, protobuf, swoole, sqlite, ast-beta',
|
||||
'7.2',
|
||||
'darwin'
|
||||
);
|
||||
expect(darwin).toContain('add_brew_extension xdebug');
|
||||
expect(darwin).toContain('add_brew_extension pcov');
|
||||
expect(darwin).toContain('add_brew_extension grpc');
|
||||
expect(darwin).toContain('add_brew_extension igbinary');
|
||||
expect(darwin).toContain('add_brew_extension imagick');
|
||||
expect(darwin).toContain('add_brew_extension protobuf');
|
||||
expect(darwin).toContain('add_brew_extension swoole');
|
||||
expect(darwin).toContain('pecl_install sqlite3');
|
||||
expect(darwin).toContain('add_unstable_extension ast beta extension');
|
||||
|
||||
darwin = await extensions.addExtension('phalcon3', '7.0', 'darwin');
|
||||
expect(darwin).toContain('phalcon_darwin.sh phalcon3 7.0');
|
||||
|
||||
darwin = await extensions.addExtension('phalcon4', '7.3', 'darwin');
|
||||
expect(darwin).toContain('phalcon_darwin.sh phalcon4 7.3');
|
||||
|
||||
darwin = await extensions.addExtension('pcov', '5.6', 'darwin');
|
||||
expect(darwin).toContain('pecl_install pcov');
|
||||
|
||||
darwin = await extensions.addExtension('pcov', '7.2', 'darwin');
|
||||
expect(darwin).toContain('add_brew_extension pcov');
|
||||
|
||||
darwin = await extensions.addExtension('xdebug', '5.6', 'darwin');
|
||||
expect(darwin).toContain('add_brew_extension xdebug');
|
||||
|
||||
darwin = await extensions.addExtension('xdebug', '7.0', 'darwin');
|
||||
expect(darwin).toContain('add_brew_extension xdebug');
|
||||
|
||||
darwin = await extensions.addExtension('xdebug', '7.2', 'darwin');
|
||||
expect(darwin).toContain('add_brew_extension xdebug');
|
||||
|
||||
darwin = await extensions.addExtension('redis', '5.6', 'darwin');
|
||||
expect(darwin).toContain('pecl_install redis-2.2.8');
|
||||
|
||||
darwin = await extensions.addExtension('redis', '7.2', 'darwin');
|
||||
expect(darwin).toContain('pecl_install redis');
|
||||
|
||||
darwin = await extensions.addExtension(
|
||||
'does_not_exist',
|
||||
'7.2',
|
||||
'darwin',
|
||||
false
|
||||
);
|
||||
expect(darwin).toContain('add_extension does_not_exist');
|
||||
|
||||
darwin = await extensions.addExtension('xdebug', '7.2', 'openbsd');
|
||||
expect(darwin).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
});
|
@ -1,6 +1,181 @@
|
||||
let a = '2';
|
||||
describe('Finder tests', () => {
|
||||
it('checking 2', async () => {
|
||||
expect(a).toBe('2');
|
||||
import * as install from '../src/install';
|
||||
|
||||
/**
|
||||
* Mock install.ts
|
||||
*/
|
||||
jest.mock('../src/install', () => ({
|
||||
build: jest.fn().mockImplementation(
|
||||
async (
|
||||
filename: string,
|
||||
version: string,
|
||||
os_version: string
|
||||
): Promise<string> => {
|
||||
const extension_csv: string = process.env['extensions'] || '';
|
||||
const ini_values_csv: string = process.env['ini-values'] || '';
|
||||
const coverage_driver: string = process.env['coverage'] || '';
|
||||
let tools_csv: string = process.env['tools'] || '';
|
||||
const pecl: string = process.env['pecl'] || '';
|
||||
if (pecl == 'true') {
|
||||
tools_csv = 'pecl, ' + tools_csv;
|
||||
}
|
||||
|
||||
let script = 'initial script ' + filename + version + os_version;
|
||||
if (tools_csv) {
|
||||
script += 'add_tool';
|
||||
}
|
||||
if (extension_csv) {
|
||||
script += 'install extensions';
|
||||
}
|
||||
if (coverage_driver) {
|
||||
script += 'set coverage driver';
|
||||
}
|
||||
if (ini_values_csv) {
|
||||
script += 'edit php.ini';
|
||||
}
|
||||
|
||||
return script;
|
||||
}
|
||||
),
|
||||
run: jest.fn().mockImplementation(
|
||||
async (): Promise<string> => {
|
||||
const os_version: string = process.env['RUNNER_OS'] || '';
|
||||
let version: string = process.env['php-version'] || '';
|
||||
version = version.length > 1 ? version.slice(0, 3) : version + '.0';
|
||||
let script = '';
|
||||
switch (os_version) {
|
||||
case 'darwin':
|
||||
case 'linux':
|
||||
script = await install.build(os_version + '.sh', version, os_version);
|
||||
script += 'bash script.sh ' + version + ' ' + __dirname;
|
||||
break;
|
||||
case 'win32':
|
||||
script = await install.build(os_version + '.sh', version, os_version);
|
||||
script += 'pwsh script.ps1 ' + version + ' ' + __dirname;
|
||||
break;
|
||||
default:
|
||||
script += os_version + ' is not supported';
|
||||
}
|
||||
|
||||
return script;
|
||||
}
|
||||
)
|
||||
}));
|
||||
|
||||
/**
|
||||
* Function to set the process.env
|
||||
*
|
||||
* @param version
|
||||
* @param os
|
||||
* @param extension_csv
|
||||
* @param ini_values_csv
|
||||
* @param coverage_driver
|
||||
* @param tools
|
||||
* @param pecl
|
||||
*/
|
||||
function setEnv(
|
||||
version: string | number,
|
||||
os: string,
|
||||
extension_csv: string,
|
||||
ini_values_csv: string,
|
||||
coverage_driver: string,
|
||||
tools: string,
|
||||
pecl: string
|
||||
): void {
|
||||
process.env['php-version'] = version.toString();
|
||||
process.env['RUNNER_OS'] = os;
|
||||
process.env['extensions'] = extension_csv;
|
||||
process.env['ini-values'] = ini_values_csv;
|
||||
process.env['coverage'] = coverage_driver;
|
||||
process.env['tools'] = tools;
|
||||
process.env['pecl'] = pecl;
|
||||
}
|
||||
|
||||
describe('Install', () => {
|
||||
it('Test install on windows', async () => {
|
||||
setEnv('7.0', 'win32', '', '', '', '', '');
|
||||
|
||||
let script: string = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('pwsh script.ps1 7.0 ' + __dirname);
|
||||
|
||||
setEnv('7.3', 'win32', '', '', '', '', '');
|
||||
|
||||
script = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('pwsh script.ps1 7.3 ' + __dirname);
|
||||
|
||||
setEnv('7.3', 'win32', 'a, b', 'a=b', 'x', '', '');
|
||||
|
||||
script = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('install extensions');
|
||||
expect(script).toContain('edit php.ini');
|
||||
expect(script).toContain('set coverage driver');
|
||||
expect(script).toContain('pwsh script.ps1 7.3 ' + __dirname);
|
||||
});
|
||||
|
||||
it('Test install on linux', async () => {
|
||||
setEnv('7.3', 'linux', '', '', '', '', '');
|
||||
|
||||
let script: string = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
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('install extensions');
|
||||
expect(script).toContain('edit php.ini');
|
||||
expect(script).toContain('set coverage driver');
|
||||
expect(script).toContain('bash script.sh 7.4');
|
||||
expect(script).toContain('add_tool');
|
||||
|
||||
setEnv('7.3', 'linux', 'a, b', 'a=b', 'x', 'phpunit', '');
|
||||
|
||||
script = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('install extensions');
|
||||
expect(script).toContain('edit php.ini');
|
||||
expect(script).toContain('set coverage driver');
|
||||
expect(script).toContain('bash script.sh 7.3');
|
||||
expect(script).toContain('add_tool');
|
||||
});
|
||||
|
||||
it('Test install on darwin', async () => {
|
||||
setEnv('7.3', 'darwin', '', '', '', '', '');
|
||||
|
||||
let script: string = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('bash script.sh 7.3 ' + __dirname);
|
||||
|
||||
setEnv('7.3', 'darwin', 'a, b', 'a=b', 'x', '', '');
|
||||
|
||||
script = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('install extensions');
|
||||
expect(script).toContain('edit php.ini');
|
||||
expect(script).toContain('set coverage driver');
|
||||
expect(script).toContain('bash script.sh 7.3 ' + __dirname);
|
||||
});
|
||||
|
||||
it('Test malformed version inputs', async () => {
|
||||
setEnv('7.4.1', 'darwin', '', '', '', '', '');
|
||||
|
||||
let script: string = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('bash script.sh 7.4 ' + __dirname);
|
||||
|
||||
setEnv(8.0, 'darwin', '', '', '', '', '');
|
||||
|
||||
script = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('bash script.sh 8.0 ' + __dirname);
|
||||
|
||||
setEnv(8, 'darwin', '', '', '', '', '');
|
||||
|
||||
script = '' + (await install.run());
|
||||
expect(script).toContain('initial script');
|
||||
expect(script).toContain('bash script.sh 8.0 ' + __dirname);
|
||||
});
|
||||
});
|
||||
|
558
__tests__/tools.test.ts
Normal file
558
__tests__/tools.test.ts
Normal file
@ -0,0 +1,558 @@
|
||||
import * as tools from '../src/tools';
|
||||
|
||||
describe('Tools tests', () => {
|
||||
it('checking getCommand', async () => {
|
||||
expect(await tools.getCommand('linux', 'tool')).toBe('add_tool ');
|
||||
expect(await tools.getCommand('darwin', 'tool')).toBe('add_tool ');
|
||||
expect(await tools.getCommand('win32', 'tool')).toBe('Add-Tool ');
|
||||
expect(await tools.getCommand('openbsd', 'tool')).toContain(
|
||||
'Platform openbsd is not supported'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking getCommand', async () => {
|
||||
expect(await tools.getCommand('linux', 'composertool')).toBe(
|
||||
'add_composertool '
|
||||
);
|
||||
expect(await tools.getCommand('darwin', 'composertool')).toBe(
|
||||
'add_composertool '
|
||||
);
|
||||
expect(await tools.getCommand('win32', 'composertool')).toBe(
|
||||
'Add-Composertool '
|
||||
);
|
||||
expect(await tools.getCommand('openbsd', 'composertool')).toContain(
|
||||
'Platform openbsd is not supported'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking getCommand', async () => {
|
||||
expect(await tools.getCommand('linux', 'pecl')).toBe('add_pecl ');
|
||||
expect(await tools.getCommand('darwin', 'pecl')).toBe('add_pecl ');
|
||||
expect(await tools.getCommand('win32', 'pecl')).toBe('Add-Pecl ');
|
||||
expect(await tools.getCommand('openbsd', 'pecl')).toContain(
|
||||
'Platform openbsd is not supported'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking parseToolVersion', async () => {
|
||||
expect(await tools.getToolVersion('latest')).toBe('latest');
|
||||
expect(await tools.getToolVersion('1.2.3')).toBe('1.2.3');
|
||||
expect(await tools.getToolVersion('^1.2.3')).toBe('1.2.3');
|
||||
expect(await tools.getToolVersion('>=1.2.3')).toBe('1.2.3');
|
||||
expect(await tools.getToolVersion('>1.2.3')).toBe('1.2.3');
|
||||
expect(await tools.getToolVersion('1.2.3-ALPHA')).toBe('1.2.3-ALPHA');
|
||||
expect(await tools.getToolVersion('1.2.3-alpha')).toBe('1.2.3-alpha');
|
||||
expect(await tools.getToolVersion('1.2.3-beta')).toBe('1.2.3-beta');
|
||||
expect(await tools.getToolVersion('1.2.3-rc')).toBe('1.2.3-rc');
|
||||
expect(await tools.getToolVersion('1.2.3-dev')).toBe('1.2.3-dev');
|
||||
expect(await tools.getToolVersion('1.2.3-alpha1')).toBe('1.2.3-alpha1');
|
||||
expect(await tools.getToolVersion('1.2.3-alpha.1')).toBe('1.2.3-alpha.1');
|
||||
});
|
||||
|
||||
it('checking parseToolVersion', async () => {
|
||||
expect(await tools.parseTool('phpunit')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: 'latest'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:^1.2.3')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:>=1.2.3')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:>1.2.3')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3-ALPHA')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3-ALPHA'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3-alpha')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3-alpha'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3-beta')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3-beta'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3-rc')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3-rc'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3-dev')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3-dev'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3-alpha1')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3-alpha1'
|
||||
});
|
||||
expect(await tools.parseTool('phpunit:1.2.3-alpha.1')).toStrictEqual({
|
||||
name: 'phpunit',
|
||||
version: '1.2.3-alpha.1'
|
||||
});
|
||||
});
|
||||
|
||||
it('checking getUri', async () => {
|
||||
expect(
|
||||
await tools.getUri('tool', '.phar', 'latest', 'releases', '', 'download')
|
||||
).toBe('releases/latest/download/tool.phar');
|
||||
expect(
|
||||
await tools.getUri('tool', '.phar', '1.2.3', 'releases', '', 'download')
|
||||
).toBe('releases/download/1.2.3/tool.phar');
|
||||
expect(
|
||||
await tools.getUri('tool', '.phar', '1.2.3', 'releases', 'v', 'download')
|
||||
).toBe('releases/download/v1.2.3/tool.phar');
|
||||
});
|
||||
|
||||
it('checking getCodeceptionUriBuilder', async () => {
|
||||
expect(await tools.getCodeceptionUriBuilder('3.2.1', 'php56')).toBe(
|
||||
'releases/3.2.1/php56/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUriBuilder('3.2.1', 'php54')).toBe(
|
||||
'releases/3.2.1/php54/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUriBuilder('3.2.1', '')).toBe(
|
||||
'releases/3.2.1/codecept.phar'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking getCodeceptionUri', async () => {
|
||||
expect(await tools.getCodeceptionUri('latest', '5.6')).toBe(
|
||||
'php56/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('latest', '7.0')).toBe(
|
||||
'php56/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('latest', '7.1')).toBe(
|
||||
'php56/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('latest', '7.2')).toBe(
|
||||
'codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('latest', '7.3')).toBe(
|
||||
'codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('latest', '7.4')).toBe(
|
||||
'codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('4.0.0', '7.4')).toBe(
|
||||
'releases/4.0.0/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('4.0.0', '5.6')).toBe(
|
||||
'releases/4.0.0/php56/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('4.0.0', '7.1')).toBe(
|
||||
'releases/4.0.0/php56/codecept.phar'
|
||||
);
|
||||
expect(await tools.getCodeceptionUri('3.1.0', '7.4')).toBe(
|
||||
'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'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking addPhive', async () => {
|
||||
let script: string = await tools.addPhive('1.2.3', 'linux');
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/phar-io/phive/releases/download/1.2.3/phive-1.2.3.phar phive'
|
||||
);
|
||||
|
||||
script = await tools.addPhive('latest', 'win32');
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://phar.io/releases/phive.phar phive'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking getPhpunitUri', async () => {
|
||||
expect(await tools.getPharUrl('domain', 'tool', '', 'latest')).toBe(
|
||||
'domain/tool.phar'
|
||||
);
|
||||
expect(await tools.getPharUrl('domain', 'tool', 'v', '1.2.3')).toBe(
|
||||
'domain/tool-v1.2.3.phar'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking getDeployerUri', async () => {
|
||||
expect(await tools.getDeployerUrl('latest')).toBe(
|
||||
'https://deployer.org/deployer.phar'
|
||||
);
|
||||
expect(await tools.getDeployerUrl('1.2.3')).toBe(
|
||||
'https://deployer.org/releases/v1.2.3/deployer.phar'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking addComposer', async () => {
|
||||
expect(await tools.addComposer(['a', 'b'])).toStrictEqual([
|
||||
'composer',
|
||||
'a',
|
||||
'b'
|
||||
]);
|
||||
expect(await tools.addComposer(['a', 'b', 'composer'])).toStrictEqual([
|
||||
'composer',
|
||||
'a',
|
||||
'b'
|
||||
]);
|
||||
expect(await tools.addComposer(['a', 'b', 'composer:1.2'])).toStrictEqual([
|
||||
'composer',
|
||||
'a',
|
||||
'b'
|
||||
]);
|
||||
expect(
|
||||
await tools.addComposer(['a', 'b', 'composer:1.2.3'])
|
||||
).toStrictEqual(['composer:1.2.3', 'a', 'b']);
|
||||
expect(
|
||||
await tools.addComposer(['a', 'b', 'composer:v1.2.3'])
|
||||
).toStrictEqual(['composer:1.2.3', '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']);
|
||||
expect(
|
||||
await tools.addComposer(['hirak', 'b', 'c', 'composer:v2'])
|
||||
).toStrictEqual(['composer:1', 'hirak', 'b', 'c']);
|
||||
});
|
||||
|
||||
it('checking getComposerUrl', async () => {
|
||||
expect(await tools.getComposerUrl('latest')).toContain(
|
||||
'https://getcomposer.org/composer-stable.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('stable')).toContain(
|
||||
'https://getcomposer.org/composer-stable.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('snapshot')).toContain(
|
||||
'https://getcomposer.org/composer.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('preview')).toContain(
|
||||
'https://getcomposer.org/composer-preview.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('1')).toContain(
|
||||
'https://getcomposer.org/composer-1.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('2')).toContain(
|
||||
'https://getcomposer.org/composer-2.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('1.7.2')).toContain(
|
||||
'https://github.com/composer/composer/releases/download/1.7.2/composer.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('1.7.2')).toContain(
|
||||
'https://getcomposer.org/composer-1.7.2.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('2.0.0-RC2')).toContain(
|
||||
'https://github.com/composer/composer/releases/download/2.0.0-RC2/composer.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('2.0.0-RC2')).toContain(
|
||||
'https://getcomposer.org/composer-2.0.0-RC2.phar'
|
||||
);
|
||||
expect(await tools.getComposerUrl('wrong')).toContain(
|
||||
'https://getcomposer.org/composer-stable.phar'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking getSymfonyUri', async () => {
|
||||
expect(await tools.getSymfonyUri('latest', 'linux')).toContain(
|
||||
'releases/latest/download/symfony_linux_amd64'
|
||||
);
|
||||
expect(await tools.getSymfonyUri('1.2.3', 'linux')).toContain(
|
||||
'releases/download/v1.2.3/symfony_linux_amd64'
|
||||
);
|
||||
expect(await tools.getSymfonyUri('latest', 'darwin')).toContain(
|
||||
'releases/latest/download/symfony_darwin_amd64'
|
||||
);
|
||||
expect(await tools.getSymfonyUri('1.2.3', 'darwin')).toContain(
|
||||
'releases/download/v1.2.3/symfony_darwin_amd64'
|
||||
);
|
||||
expect(await tools.getSymfonyUri('latest', 'win32')).toContain(
|
||||
'releases/latest/download/symfony_windows_amd64'
|
||||
);
|
||||
expect(await tools.getSymfonyUri('1.2.3', 'win32')).toContain(
|
||||
'releases/download/v1.2.3/symfony_windows_amd64'
|
||||
);
|
||||
expect(await tools.getSymfonyUri('1.2.3', 'openbsd')).toContain(
|
||||
'Platform openbsd is not supported'
|
||||
);
|
||||
});
|
||||
|
||||
it('checking getCleanedToolsList', async () => {
|
||||
const tools_list: string[] = await tools.getCleanedToolsList(
|
||||
'tool, composer:1.2.3, robmorgan/phinx'
|
||||
);
|
||||
expect(tools_list).toStrictEqual(['composer:1.2.3', 'tool', 'phinx']);
|
||||
});
|
||||
|
||||
it('checking addArchive', async () => {
|
||||
let script: string = await tools.addArchive(
|
||||
'tool',
|
||||
'https://tool.com/tool.phar',
|
||||
'linux'
|
||||
);
|
||||
expect(script).toContain('add_tool https://tool.com/tool.phar tool');
|
||||
script = await tools.addArchive(
|
||||
'tool',
|
||||
'https://tool.com/tool.phar',
|
||||
'darwin'
|
||||
);
|
||||
expect(script).toContain('add_tool https://tool.com/tool.phar tool');
|
||||
script = await tools.addArchive(
|
||||
'tool',
|
||||
'https://tool.com/tool.phar',
|
||||
'win32'
|
||||
);
|
||||
expect(script).toContain('Add-Tool https://tool.com/tool.phar tool');
|
||||
|
||||
script = await tools.addArchive(
|
||||
'tool',
|
||||
'https://tool.com/tool.phar',
|
||||
'openbsd'
|
||||
);
|
||||
expect(script).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
|
||||
it('checking addDevTools', async () => {
|
||||
let script: string = await tools.addDevTools('phpize', 'linux');
|
||||
expect(script).toContain('add_devtools');
|
||||
expect(script).toContain('add_log "$tick" "phpize" "Added"');
|
||||
|
||||
script = await tools.addDevTools('php-config', 'linux');
|
||||
expect(script).toContain('add_devtools');
|
||||
expect(script).toContain('add_log "$tick" "php-config" "Added"');
|
||||
|
||||
script = await tools.addDevTools('phpize', 'darwin');
|
||||
expect(script).toContain('add_log "$tick" "phpize" "Added"');
|
||||
|
||||
script = await tools.addDevTools('php-config', 'darwin');
|
||||
expect(script).toContain('add_log "$tick" "php-config" "Added"');
|
||||
|
||||
script = await tools.addDevTools('phpize', 'win32');
|
||||
expect(script).toContain(
|
||||
'Add-Log "$cross" "phpize" "phpize is not a windows tool"'
|
||||
);
|
||||
|
||||
script = await tools.addDevTools('php-config', 'win32');
|
||||
expect(script).toContain(
|
||||
'Add-Log "$cross" "php-config" "php-config is not a windows tool"'
|
||||
);
|
||||
|
||||
script = await tools.addDevTools('tool', 'openbsd');
|
||||
expect(script).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
|
||||
it('checking addPackage', async () => {
|
||||
let script: string = await tools.addPackage(
|
||||
'tool',
|
||||
'tool:1.2.3',
|
||||
'user/',
|
||||
'linux'
|
||||
);
|
||||
expect(script).toContain('add_composertool tool tool:1.2.3 user/');
|
||||
|
||||
script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'darwin');
|
||||
expect(script).toContain('add_composertool tool tool:1.2.3 user/');
|
||||
|
||||
script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'win32');
|
||||
expect(script).toContain('Add-Composertool tool tool:1.2.3 user/');
|
||||
|
||||
script = await tools.addPackage('tool', 'tool:1.2.3', 'user/', 'openbsd');
|
||||
expect(script).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
|
||||
it('checking addTools on linux', async () => {
|
||||
const script: string = await tools.addTools(
|
||||
'cs2pr, php-cs-fixer, phpstan, phpunit, pecl, phinx, phinx:1.2.3, phive, php-config, phpize, symfony',
|
||||
'7.4',
|
||||
'linux'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar,https://getcomposer.org/composer-stable.phar composer'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/latest/download/php-cs-fixer.phar php-cs-fixer'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/phpstan/phpstan/releases/latest/download/phpstan.phar phpstan'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://phar.io/releases/phive.phar phive'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://phar.phpunit.de/phpunit.phar phpunit'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/symfony/cli/releases/latest/download/symfony_linux_amd64 symfony'
|
||||
);
|
||||
expect(script).toContain('add_pecl');
|
||||
expect(script).toContain('add_composertool phinx phinx robmorgan/');
|
||||
expect(script).toContain('add_composertool phinx phinx:1.2.3 robmorgan/');
|
||||
expect(script).toContain('add_devtools');
|
||||
expect(script).toContain('add_log "$tick" "php-config" "Added"');
|
||||
expect(script).toContain('add_log "$tick" "phpize" "Added"');
|
||||
});
|
||||
it('checking addTools on darwin', async () => {
|
||||
const script: string = await tools.addTools(
|
||||
'phpcs, phpcbf, phpcpd, phpmd, psalm, phinx, phive:1.2.3, cs2pr:1.2.3, phpize, php-config, symfony:1.2.3',
|
||||
'7.4',
|
||||
'darwin'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar,https://getcomposer.org/composer-stable.phar composer'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/download/1.2.3/cs2pr cs2pr'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/squizlabs/PHP_CodeSniffer/releases/latest/download/phpcs.phar phpcs'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/squizlabs/PHP_CodeSniffer/releases/latest/download/phpcbf.phar phpcbf'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://phar.phpunit.de/phpcpd.phar phpcpd'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/phpmd/phpmd/releases/latest/download/phpmd.phar phpmd'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'https://github.com/vimeo/psalm/releases/latest/download/psalm.phar psalm'
|
||||
);
|
||||
expect(script).toContain('add_composertool phinx phinx robmorgan/');
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/phar-io/phive/releases/download/1.2.3/phive-1.2.3.phar phive'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/symfony/cli/releases/download/v1.2.3/symfony_darwin_amd64 symfony'
|
||||
);
|
||||
expect(script).toContain('add_log "$tick" "phpize" "Added"');
|
||||
expect(script).toContain('add_log "$tick" "php-config" "Added"');
|
||||
});
|
||||
it('checking addTools on windows', async () => {
|
||||
const script: string = await tools.addTools(
|
||||
'codeception, cs2pr, deployer, phpmd, phinx, phive:0.13.2, php-config, phpize, symfony, does_not_exist, composer',
|
||||
'7.4',
|
||||
'win32'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-stable.phar,https://getcomposer.org/composer-stable.phar composer'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://github.com/staabm/annotate-pull-request-from-checkstyle/releases/latest/download/cs2pr cs2pr'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://deployer.org/deployer.phar deployer'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://github.com/phpmd/phpmd/releases/latest/download/phpmd.phar phpmd'
|
||||
);
|
||||
expect(script).toContain('Add-Composertool phinx phinx robmorgan/');
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://github.com/phar-io/phive/releases/download/0.13.2/phive-0.13.2.phar phive'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://github.com/symfony/cli/releases/latest/download/symfony_windows_amd64.exe symfony'
|
||||
);
|
||||
expect(script).toContain('phpize is not a windows tool');
|
||||
expect(script).toContain('php-config is not a windows tool');
|
||||
expect(script).toContain('Tool does_not_exist is not supported');
|
||||
});
|
||||
it('checking addTools with composer tool using user/tool as input', async () => {
|
||||
const script: string = await tools.addTools(
|
||||
'hirak/prestissimo, narrowspark/automatic-composer-prefetcher, robmorgan/phinx',
|
||||
'7.4',
|
||||
'win32'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'Add-Tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-1.phar,https://getcomposer.org/composer-1.phar composer'
|
||||
);
|
||||
expect(script).toContain('Add-Composertool prestissimo prestissimo hirak/');
|
||||
expect(script).toContain('Add-Composertool phinx phinx robmorgan/');
|
||||
expect(script).toContain(
|
||||
'Add-Composertool 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://github.com/shivammathur/composer-cache/releases/latest/download/composer-1.phar,https://getcomposer.org/composer-1.phar composer'
|
||||
);
|
||||
|
||||
script = await tools.addTools('composer:preview', '7.4', 'linux');
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-preview.phar,https://getcomposer.org/composer-preview.phar composer'
|
||||
);
|
||||
script = await tools.addTools(
|
||||
'composer:v1, composer:preview, composer:snapshot',
|
||||
'7.4',
|
||||
'linux'
|
||||
);
|
||||
expect(script).toContain(
|
||||
'add_tool https://github.com/shivammathur/composer-cache/releases/latest/download/composer-snapshot.phar,https://getcomposer.org/composer.phar composer'
|
||||
);
|
||||
});
|
||||
});
|
175
__tests__/utils.test.ts
Normal file
175
__tests__/utils.test.ts
Normal file
@ -0,0 +1,175 @@
|
||||
import * as fs from 'fs';
|
||||
import * as path from 'path';
|
||||
import * as utils from '../src/utils';
|
||||
|
||||
jest.mock('@actions/core', () => ({
|
||||
getInput: jest.fn().mockImplementation(key => {
|
||||
return ['setup-php'].indexOf(key) !== -1 ? key : '';
|
||||
})
|
||||
}));
|
||||
|
||||
async function cleanup(path: string): Promise<void> {
|
||||
fs.unlink(path, error => {
|
||||
if (error) {
|
||||
console.log(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
describe('Utils tests', () => {
|
||||
it('checking readEnv', async () => {
|
||||
process.env['test'] = 'setup-php';
|
||||
expect(await utils.readEnv('test')).toBe('setup-php');
|
||||
expect(await utils.readEnv('undefined')).toBe('');
|
||||
});
|
||||
|
||||
it('checking getInput', async () => {
|
||||
expect(await utils.getInput('test', false)).toBe('setup-php');
|
||||
expect(await utils.getInput('setup-php', false)).toBe('setup-php');
|
||||
expect(await utils.getInput('DoesNotExist', false)).toBe('');
|
||||
expect(async () => {
|
||||
await utils.getInput('DoesNotExist', true);
|
||||
}).rejects.toThrow('Input required and not supplied: DoesNotExist');
|
||||
});
|
||||
|
||||
it('checking asyncForEach', async () => {
|
||||
const array: Array<string> = ['a', 'b', 'c'];
|
||||
let concat = '';
|
||||
await utils.asyncForEach(array, async function (
|
||||
str: string
|
||||
): Promise<void> {
|
||||
concat += str;
|
||||
});
|
||||
expect(concat).toBe('abc');
|
||||
});
|
||||
|
||||
it('checking asyncForEach', async () => {
|
||||
expect(await utils.color('error')).toBe('31');
|
||||
expect(await utils.color('success')).toBe('32');
|
||||
expect(await utils.color('any')).toBe('32');
|
||||
expect(await utils.color('warning')).toBe('33');
|
||||
});
|
||||
|
||||
it('checking readScripts', async () => {
|
||||
const darwin: string = fs.readFileSync(
|
||||
path.join(__dirname, '../src/scripts/darwin.sh'),
|
||||
'utf8'
|
||||
);
|
||||
const linux: string = fs.readFileSync(
|
||||
path.join(__dirname, '../src/scripts/linux.sh'),
|
||||
'utf8'
|
||||
);
|
||||
const win32: string = fs.readFileSync(
|
||||
path.join(__dirname, '../src/scripts/win32.ps1'),
|
||||
'utf8'
|
||||
);
|
||||
expect(await utils.readScript('darwin.sh')).toBe(darwin);
|
||||
expect(await utils.readScript('darwin.sh')).toBe(darwin);
|
||||
expect(await utils.readScript('linux.sh')).toBe(linux);
|
||||
expect(await utils.readScript('linux.sh')).toBe(linux);
|
||||
expect(await utils.readScript('win32.ps1')).toBe(win32);
|
||||
expect(await utils.readScript('win32.ps1')).toBe(win32);
|
||||
});
|
||||
|
||||
it('checking writeScripts', async () => {
|
||||
const testString = 'sudo apt-get install php';
|
||||
const runner_dir: string = process.env['RUNNER_TOOL_CACHE'] || '';
|
||||
const script_path: string = path.join(runner_dir, 'test.sh');
|
||||
await utils.writeScript('test.sh', testString);
|
||||
await fs.readFile(script_path, function (
|
||||
error: Error | null,
|
||||
data: Buffer
|
||||
) {
|
||||
expect(testString).toBe(data.toString());
|
||||
});
|
||||
await cleanup(script_path);
|
||||
});
|
||||
|
||||
it('checking extensionArray', async () => {
|
||||
expect(await utils.extensionArray('a, b, php_c, php-d')).toEqual([
|
||||
'a',
|
||||
'b',
|
||||
'c',
|
||||
'd'
|
||||
]);
|
||||
|
||||
expect(await utils.extensionArray('')).toEqual([]);
|
||||
expect(await utils.extensionArray(' ')).toEqual([]);
|
||||
});
|
||||
|
||||
it('checking INIArray', async () => {
|
||||
expect(await utils.CSVArray('a=1, b=2, c=3')).toEqual([
|
||||
'a=1',
|
||||
'b=2',
|
||||
'c=3'
|
||||
]);
|
||||
expect(await utils.CSVArray('')).toEqual([]);
|
||||
expect(await utils.CSVArray(' ')).toEqual([]);
|
||||
});
|
||||
|
||||
it('checking log', async () => {
|
||||
const message = 'Test message';
|
||||
|
||||
let warning_log: string = await utils.log(message, 'win32', 'warning');
|
||||
expect(warning_log).toEqual('printf "\\033[33;1m' + message + ' \\033[0m"');
|
||||
warning_log = await utils.log(message, 'linux', 'warning');
|
||||
expect(warning_log).toEqual('echo "\\033[33;1m' + message + '\\033[0m"');
|
||||
warning_log = await utils.log(message, 'darwin', 'warning');
|
||||
expect(warning_log).toEqual('echo "\\033[33;1m' + message + '\\033[0m"');
|
||||
|
||||
let error_log: string = await utils.log(message, 'win32', 'error');
|
||||
expect(error_log).toEqual('printf "\\033[31;1m' + message + ' \\033[0m"');
|
||||
error_log = await utils.log(message, 'linux', 'error');
|
||||
expect(error_log).toEqual('echo "\\033[31;1m' + message + '\\033[0m"');
|
||||
error_log = await utils.log(message, 'darwin', 'error');
|
||||
expect(error_log).toEqual('echo "\\033[31;1m' + message + '\\033[0m"');
|
||||
|
||||
let success_log: string = await utils.log(message, 'win32', 'success');
|
||||
expect(success_log).toEqual('printf "\\033[32;1m' + message + ' \\033[0m"');
|
||||
success_log = await utils.log(message, 'linux', 'success');
|
||||
expect(success_log).toEqual('echo "\\033[32;1m' + message + '\\033[0m"');
|
||||
success_log = await utils.log(message, 'darwin', 'success');
|
||||
expect(success_log).toEqual('echo "\\033[32;1m' + message + '\\033[0m"');
|
||||
|
||||
let step_log: string = await utils.stepLog(message, 'win32');
|
||||
expect(step_log).toEqual('Step-Log "Test message"');
|
||||
step_log = await utils.stepLog(message, 'linux');
|
||||
expect(step_log).toEqual('step_log "Test message"');
|
||||
step_log = await utils.stepLog(message, 'darwin');
|
||||
expect(step_log).toEqual('step_log "Test message"');
|
||||
step_log = await utils.stepLog(message, 'openbsd');
|
||||
expect(step_log).toContain('Platform openbsd is not supported');
|
||||
|
||||
let add_log: string = await utils.addLog(
|
||||
'tick',
|
||||
'xdebug',
|
||||
'enabled',
|
||||
'win32'
|
||||
);
|
||||
expect(add_log).toEqual('Add-Log "tick" "xdebug" "enabled"');
|
||||
add_log = await utils.addLog('tick', 'xdebug', 'enabled', 'linux');
|
||||
expect(add_log).toEqual('add_log "tick" "xdebug" "enabled"');
|
||||
add_log = await utils.addLog('tick', 'xdebug', 'enabled', 'darwin');
|
||||
expect(add_log).toEqual('add_log "tick" "xdebug" "enabled"');
|
||||
add_log = await utils.addLog('tick', 'xdebug', 'enabled', 'openbsd');
|
||||
expect(add_log).toContain('Platform openbsd is not supported');
|
||||
});
|
||||
|
||||
it('checking getExtensionPrefix', async () => {
|
||||
expect(await utils.getExtensionPrefix('extensionDoesNotExist')).toEqual(
|
||||
'extension'
|
||||
);
|
||||
expect(await utils.getExtensionPrefix('xsl')).toEqual('extension');
|
||||
expect(await utils.getExtensionPrefix('xdebug')).toEqual('zend_extension');
|
||||
expect(await utils.getExtensionPrefix('opcache')).toEqual('zend_extension');
|
||||
});
|
||||
|
||||
it('checking suppressOutput', async () => {
|
||||
expect(await utils.suppressOutput('win32')).toEqual(' >$null 2>&1');
|
||||
expect(await utils.suppressOutput('linux')).toEqual(' >/dev/null 2>&1');
|
||||
expect(await utils.suppressOutput('darwin')).toEqual(' >/dev/null 2>&1');
|
||||
expect(await utils.suppressOutput('openbsd')).toContain(
|
||||
'Platform openbsd is not supported'
|
||||
);
|
||||
});
|
||||
});
|
34
action.yml
34
action.yml
@ -1,12 +1,38 @@
|
||||
name: 'Setup PHP Action'
|
||||
author: shivammathur
|
||||
description: 'Setup a PHP environment with composer and add it to the PATH'
|
||||
description: 'Setup PHP with required extensions, php.ini configuration, code-coverage support and various tools like composer'
|
||||
branding:
|
||||
icon: 'activity'
|
||||
color: 'purple'
|
||||
icon: 'play-circle'
|
||||
inputs:
|
||||
php-version:
|
||||
description: 'PHP version to install.'
|
||||
description: 'Setup PHP version.'
|
||||
default: '7.4'
|
||||
required: true
|
||||
extensions:
|
||||
description: 'Setup PHP extensions.'
|
||||
required: false
|
||||
ini-values:
|
||||
description: 'Add values to php.ini.'
|
||||
required: false
|
||||
coverage:
|
||||
description: 'Setup code coverage driver.'
|
||||
required: false
|
||||
tools:
|
||||
description: 'Setup popular tools globally.'
|
||||
required: false
|
||||
extension-csv:
|
||||
description: 'Deprecated! Use extensions instead.'
|
||||
deprecationMessage: 'The extension-csv property is deprecated. Use extensions instead.'
|
||||
required: false
|
||||
ini-values-csv:
|
||||
description: 'Deprecated! Use ini-values instead.'
|
||||
deprecationMessage: 'The ini-values-csv property is deprecated. Use ini-values instead.'
|
||||
required: false
|
||||
pecl:
|
||||
description: 'Deprecated! Use tools instead to setup PECL.'
|
||||
deprecationMessage: 'The pecl property is deprecated. Specify pecl in tools instead.'
|
||||
required: false
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'lib/install.js'
|
||||
main: 'dist/index.js'
|
||||
|
2977
dist/index.js
vendored
Normal file
2977
dist/index.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
# Contributors
|
||||
|
||||
Please submit a Pull Request to the develop branch
|
32
examples/bedrock.yml
Normal file
32
examples/bedrock.yml
Normal file
@ -0,0 +1,32 @@
|
||||
# GitHub Action for roots/bedrock
|
||||
name: Testing Bedrock
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
bedrock:
|
||||
name: Bedrock (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.1', '7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: PHP test
|
||||
run: composer test
|
114
examples/cakephp-mysql.yml
Normal file
114
examples/cakephp-mysql.yml
Normal file
@ -0,0 +1,114 @@
|
||||
# GitHub Action for CakePHP with MySQL and Redis
|
||||
# Tested with https://github.com/cakephp/app
|
||||
name: Testing CakePHP with MySQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
tests:
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
||||
MYSQL_ROOT_PASSWORD: password
|
||||
MYSQL_DATABASE: cakephp
|
||||
ports:
|
||||
- 3306/tcp
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379/tcp
|
||||
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# You can also use ext-apcu or ext-memcached instead of ext-redis
|
||||
# Install memcached if using ext-memcached
|
||||
extensions: mbstring, intl, redis, pdo_mysql
|
||||
coverage: pcov
|
||||
- name: Start mysql service
|
||||
run: sudo /etc/init.d/mysql start
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
composer run-script post-install-cmd --no-interaction
|
||||
# Add a step to run migrations if required
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
||||
env:
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
||||
DB_DSN: "mysql://root:password@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/cakephp?init[]=SET sql_mode = \"STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\""
|
||||
|
||||
coding-standard:
|
||||
name: Coding Standard
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.3'
|
||||
extensions: mbstring, intl
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: PHP CodeSniffer
|
||||
run: composer cs-check
|
||||
|
||||
static-analysis:
|
||||
name: Static Analysis
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.3'
|
||||
extensions: mbstring, intl
|
||||
tools: phpstan
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Static Analysis using PHPStan
|
||||
run: phpstan analyse --no-progress src/
|
112
examples/cakephp-postgres.yml
Normal file
112
examples/cakephp-postgres.yml
Normal file
@ -0,0 +1,112 @@
|
||||
# GitHub Action for CakePHP with PostgreSQL and Redis
|
||||
# Tested with https://github.com/cakephp/app
|
||||
name: Testing CakePHP with PostgreSQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
tests:
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: postgres
|
||||
ports:
|
||||
- 5432/tcp
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379/tcp
|
||||
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# You can also use ext-apcu or ext-memcached instead of ext-redis
|
||||
# Install memcached if using ext-memcached
|
||||
extensions: mbstring, intl, redis, pdo_pgsql
|
||||
coverage: pcov
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
composer run-script post-install-cmd --no-interaction
|
||||
# Add a step to run migrations if required
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
||||
env:
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
||||
DB_DSN: postgres://postgres@127.0.0.1:${{ job.services.postgres.ports['5432'] }}/postgres
|
||||
|
||||
coding-standard:
|
||||
name: Coding Standard
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.3'
|
||||
extensions: mbstring, intl
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: PHP CodeSniffer
|
||||
run: composer cs-check
|
||||
|
||||
static-analysis:
|
||||
name: Static Analysis
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.3'
|
||||
extensions: mbstring, intl
|
||||
tools: phpstan
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Static Analysis using PHPStan
|
||||
run: phpstan analyse --no-progress src/
|
92
examples/cakephp.yml
Normal file
92
examples/cakephp.yml
Normal file
@ -0,0 +1,92 @@
|
||||
# GitHub Action for CakePHP
|
||||
# Tested with https://github.com/cakephp/app
|
||||
name: Testing CakePHP
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
tests:
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, intl, pdo_sqlite, pdo_mysql
|
||||
coverage: pcov #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
composer run-script post-install-cmd --no-interaction
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
||||
|
||||
coding-standard:
|
||||
name: Coding Standard
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.3'
|
||||
extensions: mbstring, intl
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: PHP CodeSniffer
|
||||
run: composer cs-check
|
||||
|
||||
static-analysis:
|
||||
name: Static Analysis
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v1
|
||||
with:
|
||||
php-version: '7.3'
|
||||
extensions: mbstring, intl
|
||||
tools: phpstan
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Static Analysis using PHPStan
|
||||
run: phpstan analyse --no-progress src/
|
34
examples/codeigniter.yml
Normal file
34
examples/codeigniter.yml
Normal file
@ -0,0 +1,34 @@
|
||||
# GitHub Action for CodeIgniter
|
||||
name: Testing CodeIgniter
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, intl, curl, dom
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
74
examples/laravel-mysql.yml
Normal file
74
examples/laravel-mysql.yml
Normal file
@ -0,0 +1,74 @@
|
||||
# GitHub Action for Laravel with MySQL and Redis
|
||||
name: Testing Laravel with MySQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
laravel:
|
||||
name: Laravel (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DB_DATABASE: laravel
|
||||
DB_USERNAME: root
|
||||
DB_PASSWORD: password
|
||||
BROADCAST_DRIVER: log
|
||||
CACHE_DRIVER: redis
|
||||
QUEUE_CONNECTION: redis
|
||||
SESSION_DRIVER: redis
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
||||
MYSQL_ROOT_PASSWORD: password
|
||||
MYSQL_DATABASE: laravel
|
||||
ports:
|
||||
- 3306/tcp
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379/tcp
|
||||
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, fileinfo, mysql
|
||||
coverage: xdebug #optional
|
||||
- name: Start mysql service
|
||||
run: sudo /etc/init.d/mysql start
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: |
|
||||
php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
php artisan key:generate
|
||||
- name: Clear Config
|
||||
run: php artisan config:clear
|
||||
- name: Run Migration
|
||||
run: php artisan migrate -v
|
||||
env:
|
||||
DB_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
||||
env:
|
||||
DB_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
74
examples/laravel-postgres.yml
Normal file
74
examples/laravel-postgres.yml
Normal file
@ -0,0 +1,74 @@
|
||||
# GitHub Action for Laravel with PostgreSQL and Redis
|
||||
name: Testing Laravel with PostgreSQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
laravel:
|
||||
name: Laravel (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
BROADCAST_DRIVER: log
|
||||
CACHE_DRIVER: redis
|
||||
QUEUE_CONNECTION: redis
|
||||
SESSION_DRIVER: redis
|
||||
DB_CONNECTION: pgsql
|
||||
DB_HOST: localhost
|
||||
DB_PASSWORD: postgres
|
||||
DB_USERNAME: postgres
|
||||
DB_DATABASE: postgres
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: postgres
|
||||
ports:
|
||||
- 5432/tcp
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379/tcp
|
||||
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, fileinfo, pgsql
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: |
|
||||
php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
php artisan key:generate
|
||||
- name: Clear Config
|
||||
run: php artisan config:clear
|
||||
- name: Run Migration
|
||||
run: php artisan migrate -v
|
||||
env:
|
||||
DB_PORT: ${{ job.services.postgres.ports[5432] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
||||
env:
|
||||
DB_PORT: ${{ job.services.postgres.ports[5432] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
42
examples/laravel.yml
Normal file
42
examples/laravel.yml
Normal file
@ -0,0 +1,42 @@
|
||||
# GitHub Action for Laravel
|
||||
name: Testing Laravel
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
laravel:
|
||||
name: Laravel (PHP ${{ matrix.php-versions }} on ${{ matrix.operating-system }})
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, fileinfo
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: |
|
||||
php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
php artisan key:generate
|
||||
- name: Clear Config
|
||||
run: php artisan config:clear
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
74
examples/lumen-mysql.yml
Normal file
74
examples/lumen-mysql.yml
Normal file
@ -0,0 +1,74 @@
|
||||
# GitHub Action for Lumen with MySQL and Redis
|
||||
name: Testing Lumen with MySQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
lumen:
|
||||
name: Lumen (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DB_DATABASE: lumen
|
||||
DB_USERNAME: root
|
||||
DB_PASSWORD: password
|
||||
BROADCAST_DRIVER: log
|
||||
CACHE_DRIVER: redis
|
||||
QUEUE_CONNECTION: redis
|
||||
SESSION_DRIVER: redis
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
||||
MYSQL_ROOT_PASSWORD: password
|
||||
MYSQL_DATABASE: lumen
|
||||
ports:
|
||||
- 3306/tcp
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379/tcp
|
||||
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, fileinfo, mysql
|
||||
coverage: xdebug #optional
|
||||
- name: Start mysql service
|
||||
run: sudo /etc/init.d/mysql start
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
composer require predis/predis illuminate/redis
|
||||
- name: Prepare the application
|
||||
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
- name: Register Redis as service provider
|
||||
run: sed -i '$i\$app->register(Illuminate\\Redis\\RedisServiceProvider::class);' bootstrap/app.php
|
||||
- name: Run Migration
|
||||
run: php artisan migrate -v
|
||||
env:
|
||||
DB_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
||||
env:
|
||||
DB_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
74
examples/lumen-postgres.yml
Normal file
74
examples/lumen-postgres.yml
Normal file
@ -0,0 +1,74 @@
|
||||
# GitHub Action for Lumen with PostgreSQL and Redis
|
||||
name: Testing Lumen with PostgreSQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
laravel:
|
||||
name: Lumen (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
BROADCAST_DRIVER: log
|
||||
CACHE_DRIVER: redis
|
||||
QUEUE_CONNECTION: redis
|
||||
SESSION_DRIVER: redis
|
||||
DB_CONNECTION: pgsql
|
||||
DB_HOST: localhost
|
||||
DB_PASSWORD: postgres
|
||||
DB_USERNAME: postgres
|
||||
DB_DATABASE: postgres
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: postgres
|
||||
ports:
|
||||
- 5432/tcp
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379/tcp
|
||||
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, fileinfo, pgsql
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
composer require predis/predis illuminate/redis
|
||||
- name: Prepare the application
|
||||
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
- name: Register Redis as service provider
|
||||
run: sed -i '$i\$app->register(Illuminate\\Redis\\RedisServiceProvider::class);' bootstrap/app.php
|
||||
- name: Run Migration
|
||||
run: php artisan migrate -v
|
||||
env:
|
||||
DB_PORT: ${{ job.services.postgres.ports[5432] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
||||
env:
|
||||
DB_PORT: ${{ job.services.postgres.ports[5432] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
38
examples/lumen.yml
Normal file
38
examples/lumen.yml
Normal file
@ -0,0 +1,38 @@
|
||||
# GitHub Action for Lumen
|
||||
name: Unit Testing Lumen
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
lumen:
|
||||
name: Lumen (PHP ${{ matrix.php-versions }} on ${{ matrix.operating-system }})
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, fileinfo, mysql
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
74
examples/phalcon-mysql.yml
Normal file
74
examples/phalcon-mysql.yml
Normal file
@ -0,0 +1,74 @@
|
||||
# GitHub Action for Phalcon with MySQL
|
||||
## Notes
|
||||
## Make sure you have .env.example or .env file in your project
|
||||
## and you have loaded Dotenv (https://github.com/vlucas/phpdotenv)
|
||||
name: Testing Phalcon with MySQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
phalcon:
|
||||
name: Phalcon (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DB_ADAPTER: mysql
|
||||
DB_HOST: 127.0.0.1
|
||||
DB_NAME: phalcon
|
||||
DB_USERNAME: root
|
||||
DB_PASSWORD: password
|
||||
CODECEPTION_URL: 127.0.0.1
|
||||
CODECEPTION_PORT: 8888
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
||||
MYSQL_ROOT_PASSWORD: password
|
||||
MYSQL_DATABASE: phalcon
|
||||
ports:
|
||||
- 3306/tcp
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
# For phalcon 3.x, use
|
||||
# php-versions: ['7.0', '7.1', '7.2', '7.3']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, zip, phalcon4, mysql #use phalcon3 for the phalcon 3.x.
|
||||
coverage: xdebug #optional
|
||||
- name: Start mysql service
|
||||
run: sudo /etc/init.d/mysql start
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
- name: Run Migration
|
||||
run: |
|
||||
if [ ! -e phinx.yml ]; then vendor/bin/phinx init; fi
|
||||
vendor/bin/phinx migrate
|
||||
vendor/bin/phinx seed:run
|
||||
env:
|
||||
DB_PORT: ${{ job.services.mysql.ports['3306'] }}
|
||||
- name: Run Tests
|
||||
run: |
|
||||
(cd public && nohup php -S $CODECEPTION_URL:$CODECEPTION_PORT > phalcon.log 2>&1 &)
|
||||
vendor/bin/codecept build
|
||||
vendor/bin/codecept run
|
||||
env:
|
||||
DB_PORT: ${{ job.services.mysql.ports['3306'] }}
|
73
examples/phalcon-postgres.yml
Normal file
73
examples/phalcon-postgres.yml
Normal file
@ -0,0 +1,73 @@
|
||||
# GitHub Action for Phalcon with PostgreSQL
|
||||
## Notes
|
||||
## Make sure you have .env.example or .env file in your project
|
||||
## and you have loaded Dotenv (https://github.com/vlucas/phpdotenv)
|
||||
name: Testing Phalcon with PostgreSQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
phalcon:
|
||||
name: Phalcon (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DB_ADAPTER: pgsql
|
||||
DB_HOST: 127.0.0.1
|
||||
DB_NAME: postgres
|
||||
DB_USERNAME: postgres
|
||||
DB_PASSWORD: postgres
|
||||
CODECEPTION_URL: 127.0.0.1
|
||||
CODECEPTION_PORT: 8888
|
||||
DB_CONNECTION: pgsql
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: postgres
|
||||
ports:
|
||||
- 5432/tcp
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
# For phalcon 3.x, use
|
||||
# php-versions: ['7.0', '7.1', '7.2', '7.3']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, dom, zip, phalcon4, pgsql #use phalcon3 for the phalcon 3.x
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
|
||||
- name: Run Migration
|
||||
run: |
|
||||
if [ ! -e phinx.yml ]; then vendor/bin/phinx init; fi
|
||||
vendor/bin/phinx migrate
|
||||
vendor/bin/phinx seed:run
|
||||
env:
|
||||
DB_PORT: ${{ job.services.postgres.ports['5432'] }}
|
||||
- name: Run Tests
|
||||
run: |
|
||||
(cd public && nohup php -S $CODECEPTION_URL:$CODECEPTION_PORT > phalcon.log 2>&1 &)
|
||||
vendor/bin/codecept build
|
||||
vendor/bin/codecept run
|
||||
env:
|
||||
DB_PORT: ${{ job.services.postgres.ports['5432'] }}
|
57
examples/sage.yml
Normal file
57
examples/sage.yml
Normal file
@ -0,0 +1,57 @@
|
||||
# GitHub Action for roots/sage
|
||||
name: Testing Sage
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
sage:
|
||||
name: Sage (PHP ${{ matrix.php-versions }} & Node ${{ matrix.node-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.1', '7.2', '7.3', '7.4']
|
||||
node-versions: ['8', '10']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-versions }}
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring
|
||||
- name: Check node versions
|
||||
run: node -v
|
||||
- name: Get yarn cache
|
||||
id: yarn-cache
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarn-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
||||
restore-keys: ${{ runner.os }}-yarn-
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install yarn dependencies
|
||||
run: yarn -V
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Yarn test and build
|
||||
run: |
|
||||
yarn run test
|
||||
yarn run build
|
||||
yarn run rmdist
|
||||
yarn run "build:production"
|
||||
- name: PHP test
|
||||
run: composer test
|
34
examples/slim-framework.yml
Normal file
34
examples/slim-framework.yml
Normal file
@ -0,0 +1,34 @@
|
||||
# GitHub Action for Slim Framework
|
||||
name: Testing Slim Framework
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, simplexml, dom
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
55
examples/symfony-mysql.yml
Normal file
55
examples/symfony-mysql.yml
Normal file
@ -0,0 +1,55 @@
|
||||
# GitHub Action for Symfony with MySQL
|
||||
name: Testing Symfony with MySQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
symfony:
|
||||
name: Symfony (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
||||
MYSQL_ROOT_PASSWORD: symfony
|
||||
MYSQL_DATABASE: symfony
|
||||
ports:
|
||||
- 3306/tcp
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql
|
||||
coverage: xdebug #optional
|
||||
- name: Start mysql service
|
||||
run: sudo /etc/init.d/mysql start
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Run Migration
|
||||
run: |
|
||||
composer require symfony/orm-pack
|
||||
php bin/console doctrine:schema:update --force || echo "No migrations found or schema update failed"
|
||||
php bin/console doctrine:migrations:migrate || echo "No migrations found or migration failed"
|
||||
env:
|
||||
DATABASE_URL: mysql://root:symfony@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/symfony
|
||||
- name: Run Tests
|
||||
run: php bin/phpunit --coverage-text
|
53
examples/symfony-postgres.yml
Normal file
53
examples/symfony-postgres.yml
Normal file
@ -0,0 +1,53 @@
|
||||
# GitHub Action for Symfony with PostgreSQL
|
||||
name: Testing Symfony with PostgreSQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
symfony:
|
||||
name: Symfony (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: postgres
|
||||
ports:
|
||||
- 5432/tcp
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, pgsql
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Run Migration
|
||||
run: |
|
||||
composer require symfony/orm-pack
|
||||
php bin/console doctrine:schema:update --force || echo "No migrations found or schema update failed"
|
||||
php bin/console doctrine:migrations:migrate || echo "No migrations found or migration failed"
|
||||
env:
|
||||
DATABASE_URL: postgres://postgres:postgres@127.0.0.1:${{ job.services.postgres.ports[5432] }}/postgres?charset=UTF-8
|
||||
- name: Run Tests
|
||||
run: php bin/phpunit --coverage-text
|
38
examples/symfony.yml
Normal file
38
examples/symfony.yml
Normal file
@ -0,0 +1,38 @@
|
||||
# GitHub Action for Symfony
|
||||
name: Testing Symfony
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
symfony:
|
||||
name: Symfony (PHP ${{ matrix.php-versions }} on ${{ matrix.operating-system }})
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: |
|
||||
composer require symfony/orm-pack
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Run Tests
|
||||
run: php bin/phpunit --coverage-text
|
73
examples/yii2-mysql.yml
Normal file
73
examples/yii2-mysql.yml
Normal file
@ -0,0 +1,73 @@
|
||||
# GitHub Action for Yii Framework with MySQL
|
||||
name: Testing Yii2 with MySQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
yii:
|
||||
name: Yii2 (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DB_USERNAME: root
|
||||
DB_PASSWORD: yii
|
||||
TEST_DB_USERNAME: root
|
||||
TEST_DB_PASSWORD: yii
|
||||
DB_CHARSET: utf8
|
||||
services:
|
||||
mysql:
|
||||
image: mysql:5.7
|
||||
env:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: false
|
||||
MYSQL_ROOT_PASSWORD: yii
|
||||
MYSQL_DATABASE: yii
|
||||
ports:
|
||||
- 3306/tcp
|
||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Set Node.js 10.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 10.x
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, intl, gd, imagick, zip, dom, mysql
|
||||
coverage: xdebug #optional
|
||||
- name: Start mysql service
|
||||
run: sudo /etc/init.d/mysql start
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: |
|
||||
php -r "file_exists('.env') || copy('.env.dist', '.env');"
|
||||
php console/yii app/setup
|
||||
npm install --development
|
||||
npm run build
|
||||
env:
|
||||
DB_DSN: mysql:host=127.0.0.1;port=${{ job.services.mysql.ports['3306'] }};dbname=yii
|
||||
TEST_DB_DSN: mysql:host=127.0.0.1;port=${{ job.services.mysql.ports['3306'] }};dbname=yii
|
||||
- name: Run Tests
|
||||
run: |
|
||||
vendor/bin/codecept build
|
||||
php tests/bin/yii app/setup --interactive=0
|
||||
nohup php -S localhost:8080 > yii.log 2>&1 &
|
||||
vendor/bin/codecept run
|
||||
env:
|
||||
DB_DSN: mysql:host=127.0.0.1;port=${{ job.services.mysql.ports['3306'] }};dbname=yii
|
||||
TEST_DB_DSN: mysql:host=127.0.0.1;port=${{ job.services.mysql.ports['3306'] }};dbname=yii
|
71
examples/yii2-postgres.yml
Normal file
71
examples/yii2-postgres.yml
Normal file
@ -0,0 +1,71 @@
|
||||
# GitHub Action for Yii Framework with PostgreSQL
|
||||
name: Testing Yii2 with PostgreSQL
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
yii:
|
||||
name: Yii2 (PHP ${{ matrix.php-versions }})
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DB_USERNAME: postgres
|
||||
DB_PASSWORD: postgres
|
||||
TEST_DB_USERNAME: postgres
|
||||
TEST_DB_PASSWORD: postgres
|
||||
DB_CHARSET: utf8
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10.8
|
||||
env:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: postgres
|
||||
ports:
|
||||
- 5432/tcp
|
||||
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Set Node.js 10.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 10.x
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, intl, gd, imagick, zip, dom, pgsql
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install Composer dependencies
|
||||
run: composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
- name: Prepare the application
|
||||
run: |
|
||||
php -r "file_exists('.env') || copy('.env.dist', '.env');"
|
||||
php console/yii app/setup
|
||||
npm install --development
|
||||
npm run build
|
||||
env:
|
||||
DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
|
||||
TEST_DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
|
||||
- name: Run Tests
|
||||
run: |
|
||||
vendor/bin/codecept build
|
||||
php tests/bin/yii app/setup --interactive=0
|
||||
nohup php -S localhost:8080 > yii.log 2>&1 &
|
||||
vendor/bin/codecept run
|
||||
env:
|
||||
DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
|
||||
TEST_DB_DSN: pgsql:host=127.0.0.1;port=${{ job.services.postgres.ports['5432'] }};dbname=postgres
|
36
examples/zend-framework.yml
Normal file
36
examples/zend-framework.yml
Normal file
@ -0,0 +1,36 @@
|
||||
# GitHub Action for Zend Framework
|
||||
name: Testing Zend Framework
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
operating-system: [ubuntu-latest, windows-latest, macos-latest]
|
||||
php-versions: ['7.2', '7.3', '7.4']
|
||||
runs-on: ${{ matrix.operating-system }}
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP, with composer and extensions
|
||||
uses: shivammathur/setup-php@v1 #https://github.com/shivammathur/setup-php
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: mbstring, bcmath, curl, intl
|
||||
coverage: xdebug #optional
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
# Use composer.json for key, if composer.lock is not committed.
|
||||
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: ${{ runner.os }}-composer-
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer install --no-progress --prefer-dist --optimize-autoloader
|
||||
composer require --dev phpunit/phpunit squizlabs/php_codesniffer zendframework/zend-test
|
||||
- name: Test with phpunit
|
||||
run: vendor/bin/phpunit --coverage-text
|
@ -7,5 +7,6 @@ module.exports = {
|
||||
transform: {
|
||||
'^.+\\.ts$': 'ts-jest'
|
||||
},
|
||||
verbose: true
|
||||
}
|
||||
verbose: true,
|
||||
collectCoverage: true
|
||||
};
|
||||
|
@ -1,64 +0,0 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||
result["default"] = mod;
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core = __importStar(require("@actions/core"));
|
||||
const exec_1 = require("@actions/exec/lib/exec");
|
||||
var https = require('https');
|
||||
const fs = require('fs');
|
||||
function get_file(filename) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let github_path = 'https://raw.githubusercontent.com/shivammathur/setup-php/develop/src/';
|
||||
const file = fs.createWriteStream(filename);
|
||||
const request = https.get(github_path + filename, function (response) {
|
||||
response.pipe(file);
|
||||
});
|
||||
});
|
||||
}
|
||||
function run() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
let version = process.env['php-version'];
|
||||
if (!version) {
|
||||
version = core.getInput('php-version', { required: true });
|
||||
}
|
||||
console.log('Input: ' + version);
|
||||
let os_version = process.platform;
|
||||
if (os_version == 'darwin') {
|
||||
yield get_file('darwin.sh');
|
||||
yield exec_1.exec('sudo chmod a+x darwin.sh');
|
||||
yield exec_1.exec('./darwin.sh ' + version);
|
||||
}
|
||||
else if (os_version == 'win32') {
|
||||
yield get_file('windows.ps1');
|
||||
yield exec_1.exec('DIR');
|
||||
yield exec_1.exec('powershell .\\windows.ps1 -version ' + version);
|
||||
}
|
||||
else if (os_version == 'linux') {
|
||||
yield get_file('linux.sh');
|
||||
yield exec_1.exec('sudo chmod a+x linux.sh');
|
||||
yield exec_1.exec('./linux.sh ' + version);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
core.setFailed(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
run().then(() => {
|
||||
console.log('done');
|
||||
});
|
@ -1,58 +0,0 @@
|
||||
"use strict";
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
|
||||
result["default"] = mod;
|
||||
return result;
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core = __importStar(require("@actions/core"));
|
||||
const exec_1 = require("@actions/exec/lib/exec");
|
||||
var https = require('https');
|
||||
const fs = require('fs');
|
||||
function get_file(filename) {
|
||||
let github_path = 'https://raw.githubusercontent.com/shivammathur/setup-php/develop/src/';
|
||||
const file = fs.createWriteStream(filename);
|
||||
const request = https.get(github_path + filename, function (response) {
|
||||
response.pipe(file);
|
||||
});
|
||||
}
|
||||
function run() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
const version = core.getInput('php-version', { required: true });
|
||||
console.log('Input: ' + version);
|
||||
let os_version = process.platform;
|
||||
if (os_version == 'darwin') {
|
||||
get_file('darwin.sh');
|
||||
yield exec_1.exec('sudo chmod a+x darwin.sh');
|
||||
yield exec_1.exec('./darwin.sh ' + version);
|
||||
}
|
||||
else if (os_version == 'win32') {
|
||||
get_file('windows.ps1');
|
||||
yield exec_1.exec('powershell windows.ps1 -version ' + version);
|
||||
}
|
||||
else if (os_version == 'linux') {
|
||||
get_file('linux.sh');
|
||||
yield exec_1.exec('sudo chmod a+x linux.sh');
|
||||
yield exec_1.exec('./linux.sh ' + version);
|
||||
}
|
||||
}
|
||||
catch (err) {
|
||||
core.setFailed(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
run().then(() => {
|
||||
console.log('done');
|
||||
});
|
@ -1,4 +0,0 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
let v = process.env['php-version'];
|
||||
console.log(v);
|
15
node_modules/.bin/acorn
generated
vendored
15
node_modules/.bin/acorn
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../acorn/bin/acorn" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../acorn/bin/acorn" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/acorn.cmd
generated
vendored
7
node_modules/.bin/acorn.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\acorn\bin\acorn" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\acorn\bin\acorn" %*
|
||||
)
|
15
node_modules/.bin/atob
generated
vendored
15
node_modules/.bin/atob
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../atob/bin/atob.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../atob/bin/atob.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/atob.cmd
generated
vendored
7
node_modules/.bin/atob.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\atob\bin\atob.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\atob\bin\atob.js" %*
|
||||
)
|
15
node_modules/.bin/escodegen
generated
vendored
15
node_modules/.bin/escodegen
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../escodegen/bin/escodegen.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../escodegen/bin/escodegen.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/escodegen.cmd
generated
vendored
7
node_modules/.bin/escodegen.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\escodegen\bin\escodegen.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\escodegen\bin\escodegen.js" %*
|
||||
)
|
15
node_modules/.bin/esgenerate
generated
vendored
15
node_modules/.bin/esgenerate
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../escodegen/bin/esgenerate.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../escodegen/bin/esgenerate.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/esgenerate.cmd
generated
vendored
7
node_modules/.bin/esgenerate.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\escodegen\bin\esgenerate.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\escodegen\bin\esgenerate.js" %*
|
||||
)
|
15
node_modules/.bin/esparse
generated
vendored
15
node_modules/.bin/esparse
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../esprima/bin/esparse.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/esparse.cmd
generated
vendored
7
node_modules/.bin/esparse.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\esprima\bin\esparse.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\esprima\bin\esparse.js" %*
|
||||
)
|
15
node_modules/.bin/esvalidate
generated
vendored
15
node_modules/.bin/esvalidate
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../esprima/bin/esvalidate.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/esvalidate.cmd
generated
vendored
7
node_modules/.bin/esvalidate.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\esprima\bin\esvalidate.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\esprima\bin\esvalidate.js" %*
|
||||
)
|
15
node_modules/.bin/handlebars
generated
vendored
15
node_modules/.bin/handlebars
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../handlebars/bin/handlebars" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../handlebars/bin/handlebars" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/handlebars.cmd
generated
vendored
7
node_modules/.bin/handlebars.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\handlebars\bin\handlebars" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\handlebars\bin\handlebars" %*
|
||||
)
|
15
node_modules/.bin/husky-upgrade
generated
vendored
15
node_modules/.bin/husky-upgrade
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../husky/lib/upgrader/bin.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../husky/lib/upgrader/bin.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/husky-upgrade.cmd
generated
vendored
7
node_modules/.bin/husky-upgrade.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\husky\lib\upgrader\bin.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\husky\lib\upgrader\bin.js" %*
|
||||
)
|
15
node_modules/.bin/import-local-fixture
generated
vendored
15
node_modules/.bin/import-local-fixture
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../import-local/fixtures/cli.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../import-local/fixtures/cli.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/import-local-fixture.cmd
generated
vendored
7
node_modules/.bin/import-local-fixture.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\import-local\fixtures\cli.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\import-local\fixtures\cli.js" %*
|
||||
)
|
15
node_modules/.bin/is-ci
generated
vendored
15
node_modules/.bin/is-ci
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../is-ci/bin.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../is-ci/bin.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/is-ci.cmd
generated
vendored
7
node_modules/.bin/is-ci.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\is-ci\bin.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\is-ci\bin.js" %*
|
||||
)
|
15
node_modules/.bin/jest
generated
vendored
15
node_modules/.bin/jest
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../jest/bin/jest.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../jest/bin/jest.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
15
node_modules/.bin/jest-runtime
generated
vendored
15
node_modules/.bin/jest-runtime
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../jest-runtime/bin/jest-runtime.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../jest-runtime/bin/jest-runtime.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/jest-runtime.cmd
generated
vendored
7
node_modules/.bin/jest-runtime.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\jest-runtime\bin\jest-runtime.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\jest-runtime\bin\jest-runtime.js" %*
|
||||
)
|
7
node_modules/.bin/jest.cmd
generated
vendored
7
node_modules/.bin/jest.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\jest\bin\jest.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\jest\bin\jest.js" %*
|
||||
)
|
15
node_modules/.bin/js-yaml
generated
vendored
15
node_modules/.bin/js-yaml
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/js-yaml.cmd
generated
vendored
7
node_modules/.bin/js-yaml.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\js-yaml\bin\js-yaml.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\js-yaml\bin\js-yaml.js" %*
|
||||
)
|
15
node_modules/.bin/jsesc
generated
vendored
15
node_modules/.bin/jsesc
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../jsesc/bin/jsesc" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../jsesc/bin/jsesc" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/jsesc.cmd
generated
vendored
7
node_modules/.bin/jsesc.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\jsesc\bin\jsesc" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\jsesc\bin\jsesc" %*
|
||||
)
|
15
node_modules/.bin/json5
generated
vendored
15
node_modules/.bin/json5
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../json5/lib/cli.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/json5.cmd
generated
vendored
7
node_modules/.bin/json5.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\json5\lib\cli.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\json5\lib\cli.js" %*
|
||||
)
|
15
node_modules/.bin/loose-envify
generated
vendored
15
node_modules/.bin/loose-envify
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../loose-envify/cli.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../loose-envify/cli.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/loose-envify.cmd
generated
vendored
7
node_modules/.bin/loose-envify.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\loose-envify\cli.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\loose-envify\cli.js" %*
|
||||
)
|
15
node_modules/.bin/mkdirp
generated
vendored
15
node_modules/.bin/mkdirp
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../mkdirp/bin/cmd.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/mkdirp.cmd
generated
vendored
7
node_modules/.bin/mkdirp.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\mkdirp\bin\cmd.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\mkdirp\bin\cmd.js" %*
|
||||
)
|
15
node_modules/.bin/parser
generated
vendored
15
node_modules/.bin/parser
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/parser.cmd
generated
vendored
7
node_modules/.bin/parser.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\@babel\parser\bin\babel-parser.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\@babel\parser\bin\babel-parser.js" %*
|
||||
)
|
15
node_modules/.bin/prettier
generated
vendored
15
node_modules/.bin/prettier
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../prettier/bin-prettier.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../prettier/bin-prettier.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/prettier.cmd
generated
vendored
7
node_modules/.bin/prettier.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\prettier\bin-prettier.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\prettier\bin-prettier.js" %*
|
||||
)
|
15
node_modules/.bin/rimraf
generated
vendored
15
node_modules/.bin/rimraf
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../rimraf/bin.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../rimraf/bin.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/rimraf.cmd
generated
vendored
7
node_modules/.bin/rimraf.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\rimraf\bin.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\rimraf\bin.js" %*
|
||||
)
|
15
node_modules/.bin/run-node
generated
vendored
15
node_modules/.bin/run-node
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/bash" ]; then
|
||||
"$basedir/bash" "$basedir/../run-node/run-node" "$@"
|
||||
ret=$?
|
||||
else
|
||||
bash "$basedir/../run-node/run-node" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/run-node.cmd
generated
vendored
7
node_modules/.bin/run-node.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\bash.exe" (
|
||||
"%~dp0\bash.exe" "%~dp0\..\run-node\run-node" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
bash "%~dp0\..\run-node\run-node" %*
|
||||
)
|
15
node_modules/.bin/sane
generated
vendored
15
node_modules/.bin/sane
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sane/src/cli.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sane/src/cli.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/sane.cmd
generated
vendored
7
node_modules/.bin/sane.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\sane\src\cli.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\sane\src\cli.js" %*
|
||||
)
|
15
node_modules/.bin/semver
generated
vendored
15
node_modules/.bin/semver
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../semver/bin/semver.js" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/semver.cmd
generated
vendored
7
node_modules/.bin/semver.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\semver\bin\semver.js" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\semver\bin\semver.js" %*
|
||||
)
|
15
node_modules/.bin/sshpk-conv
generated
vendored
15
node_modules/.bin/sshpk-conv
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sshpk/bin/sshpk-conv" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/sshpk-conv.cmd
generated
vendored
7
node_modules/.bin/sshpk-conv.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-conv" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\sshpk\bin\sshpk-conv" %*
|
||||
)
|
15
node_modules/.bin/sshpk-sign
generated
vendored
15
node_modules/.bin/sshpk-sign
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sshpk/bin/sshpk-sign" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
7
node_modules/.bin/sshpk-sign.cmd
generated
vendored
7
node_modules/.bin/sshpk-sign.cmd
generated
vendored
@ -1,7 +0,0 @@
|
||||
@IF EXIST "%~dp0\node.exe" (
|
||||
"%~dp0\node.exe" "%~dp0\..\sshpk\bin\sshpk-sign" %*
|
||||
) ELSE (
|
||||
@SETLOCAL
|
||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
node "%~dp0\..\sshpk\bin\sshpk-sign" %*
|
||||
)
|
15
node_modules/.bin/sshpk-verify
generated
vendored
15
node_modules/.bin/sshpk-verify
generated
vendored
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
"$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@"
|
||||
ret=$?
|
||||
else
|
||||
node "$basedir/../sshpk/bin/sshpk-verify" "$@"
|
||||
ret=$?
|
||||
fi
|
||||
exit $ret
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user