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