Skip to content

Commit cc19152

Browse files
committed
Add GitHub CI
1 parent 9d1a0eb commit cc19152

File tree

1 file changed

+111
-0
lines changed

1 file changed

+111
-0
lines changed

.github/workflows/integration.yml

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
name: Testing PHP Code Generator
2+
on: [push, pull_request]
3+
4+
jobs:
5+
tests:
6+
strategy:
7+
fail-fast: false
8+
matrix:
9+
php-version:
10+
- "7.3"
11+
- "7.4"
12+
os: [ubuntu-latest]
13+
experimental: [false]
14+
include:
15+
- php-version: "8.0"
16+
os: ubuntu-latest
17+
experimental: true
18+
runs-on: ${{ matrix.os }}
19+
name: PHP ${{ matrix.php-version }} Test on ${{ matrix.os }}
20+
continue-on-error: ${{ matrix.experimental }}
21+
steps:
22+
- name: "Checkout"
23+
uses: "actions/[email protected]"
24+
25+
- name: "Install PHP"
26+
uses: "shivammathur/[email protected]"
27+
with:
28+
php-version: "${{ matrix.php-version }}"
29+
coverage: xdebug
30+
31+
- name: Get composer cache directory
32+
id: composercache
33+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
34+
35+
- name: Cache composer dependencies
36+
uses: actions/cache@v2
37+
with:
38+
path: ${{ steps.composercache.outputs.dir }}
39+
# Use composer.json for key, if composer.lock is not committed.
40+
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
41+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
42+
restore-keys: ${{ runner.os }}-composer-
43+
44+
- name: Install Composer dependencies
45+
run: |
46+
composer install --no-progress --prefer-dist --optimize-autoloader
47+
48+
- name: Run Tests
49+
run: php vendor/bin/phpunit --coverage-text
50+
51+
coding-standard:
52+
name: Coding Standard
53+
runs-on: ubuntu-latest
54+
steps:
55+
- name: Checkout
56+
uses: actions/checkout@v2
57+
58+
- name: Setup PHP
59+
uses: shivammathur/setup-php@v2
60+
with:
61+
php-version: '7.4'
62+
63+
- name: Get composer cache directory
64+
id: composercache
65+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
66+
67+
- name: Cache composer dependencies
68+
uses: actions/cache@v2
69+
with:
70+
path: ${{ steps.composercache.outputs.dir }}
71+
# Use composer.json for key, if composer.lock is not committed.
72+
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
73+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
74+
restore-keys: ${{ runner.os }}-composer-
75+
76+
- name: Install dependencies
77+
run: composer install --no-progress --prefer-dist --optimize-autoloader
78+
79+
- name: PHP CodeSniffer
80+
run: composer cs
81+
82+
static-analysis:
83+
name: Static Analysis
84+
runs-on: ubuntu-latest
85+
steps:
86+
- name: Checkout
87+
uses: actions/checkout@v2
88+
89+
- name: Setup PHP
90+
uses: shivammathur/setup-php@v2
91+
with:
92+
php-version: '7.4'
93+
94+
- name: Get composer cache directory
95+
id: composercache
96+
run: echo "::set-output name=dir::$(composer config cache-files-dir)"
97+
98+
- name: Cache composer dependencies
99+
uses: actions/cache@v2
100+
with:
101+
path: ${{ steps.composercache.outputs.dir }}
102+
# Use composer.json for key, if composer.lock is not committed.
103+
# key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
104+
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
105+
restore-keys: ${{ runner.os }}-composer-
106+
107+
- name: Install dependencies
108+
run: composer install --no-progress --prefer-dist --optimize-autoloader
109+
110+
- name: Static Analysis using PHPStan
111+
run: composer analyse

0 commit comments

Comments
 (0)