-
Notifications
You must be signed in to change notification settings - Fork 26
129 lines (105 loc) · 3.56 KB
/
php.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: php
on:
push:
branches:
- main
pull_request:
jobs:
integration:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci --ignore-scripts
- run: make test-metrics-php-laravel
- run: make test-webhooks-php-laravel
- name: Cleanup
if: always()
run: docker compose down
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/php
strategy:
fail-fast: true
matrix:
# https://endoflife.date/php
php:
- 8.1 # EOL: December 31th, 2025
- 8.2 # EOL: December 31th, 2026
- 8.3 # EOL: December 31th, 2027
# https://endoflife.date/laravel
laravel:
- 10.* # EOL: February 4th, 2025
name: build (${{ matrix.php }} w/ Laravel ${{ matrix.laravel }}
steps:
- uses: actions/checkout@v4
- name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
# Installing a specific version of Laravel will force us to use compatible versions of
# `illuminate/http` and `illuminate/support`. If we didn't do this step then we'd always only
# ever test on the latest versions of those two packages.
- name: Install dependencies
run: |
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
composer update --prefer-stable --prefer-dist --no-interaction --no-suggest
- name: Check code standards
run: make lint
- name: Run static analysis
run: |
make static-analysis
make taint-analysis
- name: Run tests
run: make test
build-laravel11:
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/php
strategy:
fail-fast: true
matrix:
# https://endoflife.date/php
php:
- 8.2 # EOL: December 31th, 2026
- 8.3 # EOL: December 31th, 2027
# https://endoflife.date/laravel
laravel:
- 11.* # EOL: March 12th, 2026
name: build (${{ matrix.php }} w/ Laravel ${{ matrix.laravel }}
steps:
- uses: actions/checkout@v4
- name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.composer/cache/files
key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
# Installing a specific version of Laravel will force us to use compatible versions of
# `illuminate/http` and `illuminate/support`. If we didn't do this step then we'd always only
# ever test on the latest versions of those two packages.
- name: Install dependencies
run: |
composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update
composer update --prefer-stable --prefer-dist --no-interaction --no-suggest
- name: Check code standards
run: make lint
- name: Run static analysis
run: |
make static-analysis
make taint-analysis
- name: Run tests
run: make test