1
+ name : Build
2
+
3
+ on :
4
+ push :
5
+ branches : [ develop, master ]
6
+ pull_request :
7
+ branches : [ develop, master ]
8
+
9
+ jobs :
10
+ build :
11
+ name : PHP ${{ matrix.name }}
12
+ strategy :
13
+ matrix :
14
+ include :
15
+ - php : 7.2
16
+ allow_fail : false
17
+ name : ' PHP 7.2 with latest deps'
18
+ - php : 7.2
19
+ allow_fail : false
20
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
21
+ name : ' PHP 7.2 with lowest stable deps'
22
+ - php : 7.3
23
+ allow_fail : false
24
+ name : ' PHP 7.3 with latest deps'
25
+ - php : 7.3
26
+ allow_fail : false
27
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
28
+ name : ' PHP 7.3 with lowest stable deps'
29
+ - php : 7.4
30
+ allow_fail : false
31
+ name : ' PHP 7.4 with latest deps'
32
+ - php : 7.4
33
+ allow_fail : false
34
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
35
+ name : ' PHP 7.4 with lowest stable deps'
36
+ - php : 8.0
37
+ allow_fail : false
38
+ php_ini : ' xdebug.coverage_enable=On'
39
+ name : ' PHP 8.0 with latest deps'
40
+ - php : 8.0
41
+ allow_fail : false
42
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
43
+ php_ini : ' xdebug.coverage_enable=On'
44
+ name : ' PHP 8.0 with lowest stable deps'
45
+ - php : 8.1
46
+ allow_fail : true
47
+ php_ini : ' xdebug.coverage_enable=On'
48
+ name : ' PHP 8.1 with latest deps'
49
+ - php : 8.1
50
+ allow_fail : true
51
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
52
+ php_ini : ' xdebug.coverage_enable=On'
53
+ name : ' PHP 8.1 with lowest stable deps'
54
+ - php : 8.2
55
+ allow_fail : true
56
+ php_ini : ' xdebug.coverage_enable=On'
57
+ name : ' PHP 8.2 with latest deps'
58
+ - php : 8.2
59
+ allow_fail : true
60
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
61
+ php_ini : ' xdebug.coverage_enable=On'
62
+ name : ' PHP 8.2 with lowest stable deps'
63
+ - php : 8.3
64
+ allow_fail : true
65
+ php_ini : ' xdebug.coverage_enable=On'
66
+ name : ' PHP 8.3 with latest deps'
67
+ - php : 8.3
68
+ allow_fail : true
69
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
70
+ php_ini : ' xdebug.coverage_enable=On'
71
+ name : ' PHP 8.3 with lowest stable deps'
72
+ - php : 8.4
73
+ allow_fail : true
74
+ php_ini : ' xdebug.coverage_enable=On'
75
+ name : ' PHP 8.4 with latest deps'
76
+ - php : 8.4
77
+ allow_fail : true
78
+ composer_update_flags : ' --prefer-lowest --prefer-stable'
79
+ php_ini : ' xdebug.coverage_enable=On'
80
+ name : ' PHP 8.4 with lowest stable deps'
81
+
82
+ runs-on : ubuntu-latest
83
+
84
+ steps :
85
+ - uses : actions/checkout@v4
86
+
87
+ - name : Validate composer.json and composer.lock
88
+ run : composer validate
89
+
90
+ - name : Setup PHP ${{ matrix.php }}
91
+ uses : shivammathur/setup-php@v2
92
+ with :
93
+ php-version : ${{ matrix.php }}
94
+ coverage : xdebug
95
+ ini-values : ${{ matrix.php_ini }}
96
+
97
+ - name : Install dependencies
98
+ run : composer install ${{ matrix.composer_flags }}
99
+ continue-on-error : ${{ matrix.allow_fail }}
100
+
101
+ - name : Update dependencies
102
+ if : matrix.composer_update_flags
103
+ run : composer update ${{ matrix.composer_update_flags }} && composer update phpunit/phpunit guzzlehttp/guzzle --with-dependencies
104
+ continue-on-error : ${{ matrix.allow_fail }}
105
+
106
+ - name : Create log folder
107
+ run : mkdir -p build/logs;
108
+
109
+ - name : Run unit tests
110
+ run : composer unit-tests
111
+ continue-on-error : ${{ matrix.allow_fail }}
112
+
113
+ - name : Upload test coverage
114
+ run : php vendor/bin/php-coveralls -vvv
115
+ env :
116
+ COVERALLS_REPO_TOKEN : ${{ secrets.GITHUB_TOKEN }}
117
+ COVERALLS_PARALLEL : true
118
+ COVERALLS_FLAG_NAME : ${{ matrix.name }}
119
+ continue-on-error : ${{ matrix.allow_fail }}
120
+
121
+ finish :
122
+ needs : build
123
+ runs-on : ubuntu-latest
124
+ steps :
125
+ - name : Coveralls Finished
126
+ run : |
127
+ curl --header "Content-Type: application/json" \
128
+ --request POST \
129
+ --data '{"repo_token":"${{ secrets.GITHUB_TOKEN }}","repo_name":"JsonMapper/LaravelPackage", "payload": {"build_num": "${{ github.sha }}", "status": "done"}}' \
130
+ https://coveralls.io/webhook
0 commit comments