88 types : [ created ]
99
1010jobs :
11- tests :
11+ unit- tests :
1212 runs-on : ubuntu-latest
13- name : Build and test
13+ name : " Unit-Tests: ${{ matrix.php }} - ${{ matrix.tools }} - PHAR readonly ${{ matrix.phar-readonly }} "
1414 strategy :
1515 fail-fast : false
1616 matrix :
17- include :
18- - php : 7.3
19- tools : " composer:v1"
20- coverage : " none"
21- publish-phar : true
22- git-fetch-depth : 0 # box/composer needs history to determine a recent git version
23- - php : 7.3
24- tools : " composer:v1"
25- coverage : " none"
26- phar-readonly : true
27- git-fetch-depth : 1
28- - php : 7.4
29- tools : " composer:v1"
30- coverage : " pcov"
31- git-fetch-depth : 1
32- - php : 7.4
33- tools : " composer:v2"
34- coverage : " none"
35- git-fetch-depth : 1
36- - php : 8.0
37- tools : " composer:v2"
38- coverage : " pcov"
39- git-fetch-depth : 1
17+ php : [ 7.3, 7.4, 8.0 ]
18+ tools : [ "composer:v1", "composer:v2" ]
19+ phar-readonly : [ true, false ]
4020
4121 steps :
4222 - uses : actions/checkout@v2
43- with :
44- fetch-depth : ${{ matrix.git-fetch-depth }}
4523
4624 - name : Setup PHP
4725 uses : shivammathur/setup-php@v2
4826 with :
4927 php-version : ${{ matrix.php }}
50- ini-values : " phar.readonly=0"
28+ ini-values : phar.readonly=0
5129 tools : ${{ matrix.tools }}
52- coverage : ${{ matrix.coverage }}
30+ coverage : none
5331 extensions : ctype, iconv, xml
5432
5533 - name : Get composer cache directory
@@ -75,29 +53,160 @@ jobs:
7553 - name : validate box config
7654 run : bin/box validate
7755
78- - name : Run tests (coverage)
79- if : matrix.coverage == 'pcov'
80- run : make tm
81-
8256 - name : Run tests (phar readonly)
8357 if : matrix.phar-readonly == true
8458 run : make tu_box_phar_readonly
8559
8660 - name : Run tests
87- if : matrix.coverage != 'pcov' && matrix. phar-readonly != true
61+ if : matrix.phar-readonly == false
8862 run : make test
8963
64+ coverage :
65+ runs-on : ubuntu-latest
66+ name : Coverage
67+
68+ steps :
69+ - uses : actions/checkout@v2
70+
71+ - name : Setup PHP
72+ uses : shivammathur/setup-php@v2
73+ with :
74+ php-version : 7.4
75+ ini-values : phar.readonly=0
76+ tools : composer:v2
77+ coverage : pcov
78+ extensions : ctype, iconv, xml
79+
80+ - name : Get composer cache directory
81+ id : composercache
82+ run : echo "::set-output name=dir::$(composer config cache-files-dir)"
83+
84+ - name : Cache composer dependencies
85+ uses : actions/cache@v2
86+ with :
87+ path : ${{ steps.composercache.outputs.dir }}
88+ key : composer-${{ runner.os }}-${{ matrix.php }}-${{ hashFiles('composer.*') }}
89+ restore-keys : |
90+ composer-${{ runner.os }}-${{ matrix.php }}-
91+ composer-${{ runner.os }}-
92+ composer-
93+
94+ - name : Install dependencies
95+ run : composer install --no-interaction --no-progress --prefer-dist
96+
97+ - name : Install requirement-checker dependencies
98+ run : composer install --no-interaction --no-progress --prefer-dist --working-dir requirement-checker
99+
100+ - name : Run tests (coverage)
101+ run : make tm
102+
103+ e2e-tests :
104+ runs-on : ubuntu-latest
105+ name : " e2e-Tests: ${{ matrix.e2e }} - ${{ matrix.php }} - ${{ matrix.tools }}"
106+ strategy :
107+ fail-fast : false
108+ matrix :
109+ e2e :
110+ - ' e2e_php_settings_checker'
111+ - ' e2e_scoper_alias'
112+ - ' e2e_scoper_whitelist'
113+ - ' e2e_check_requirements'
114+ - ' e2e_symfony'
115+ - ' e2e_composer_installed_versions'
116+ php : [ '7.3', '8.0' ]
117+ tools : [ 'composer:v1', 'composer:v2' ]
118+
119+ steps :
120+ - uses : actions/checkout@v2
121+ with :
122+ fetch-depth : 0
123+
124+ - name : Setup PHP
125+ uses : shivammathur/setup-php@v2
126+ with :
127+ php-version : ${{ matrix.php }}
128+ ini-values : " phar.readonly=0"
129+ tools : ${{ matrix.tools }}
130+ coverage : pcov
131+
132+ - name : Get composer cache directory
133+ id : composercache
134+ run : echo "::set-output name=dir::$(composer config cache-files-dir)"
135+
136+ - name : Cache composer dependencies
137+ uses : actions/cache@v2
138+ with :
139+ path : ${{ steps.composercache.outputs.dir }}
140+ key : composer-${{ runner.os }}-${{ matrix.php }}-${{ hashFiles('composer.*') }}
141+ restore-keys : |
142+ composer-${{ runner.os }}-${{ matrix.php }}-
143+ composer-${{ runner.os }}-
144+ composer-
145+
146+ - name : Install dependencies
147+ run : composer install --no-interaction --no-progress --no-suggest --prefer-dist
148+
149+ - name : Install requirement-checker dependencies
150+ run : composer install --no-interaction --no-progress --prefer-dist --working-dir requirement-checker
151+
152+ - name : Run e2e ${{ matrix.e2e }}
153+ run : make ${{ matrix.e2e }}
154+
155+ build-phar :
156+ runs-on : ubuntu-latest
157+ name : Build PHAR
158+
159+ steps :
160+ - uses : actions/checkout@v2
161+ with :
162+ fetch-depth : 0
163+
164+ - name : Setup PHP
165+ uses : shivammathur/setup-php@v2
166+ with :
167+ php-version : 7.3
168+ ini-values : phar.readonly=0
169+ tools : composer:v2
170+ coverage : none
171+
172+ - name : Get composer cache directory
173+ id : composercache
174+ run : echo "::set-output name=dir::$(composer config cache-files-dir)"
175+
176+ - name : Cache composer dependencies
177+ uses : actions/cache@v2
178+ with :
179+ path : ${{ steps.composercache.outputs.dir }}
180+ key : composer-${{ runner.os }}-${{ matrix.php }}-${{ hashFiles('composer.*') }}
181+ restore-keys : |
182+ composer-${{ runner.os }}-${{ matrix.php }}-
183+ composer-${{ runner.os }}-
184+ composer-
185+
186+ - name : Install dependencies
187+ run : composer install --no-interaction --no-progress --prefer-dist
188+
189+ - name : Install requirement-checker dependencies
190+ run : composer install --no-interaction --no-progress --prefer-dist --working-dir requirement-checker
191+
192+ - name : Build PHAR
193+ run : make compile
194+
90195 - uses : actions/upload-artifact@v1
91- name : Publish the PHAR
92- if : matrix.publish-phar == true
196+ name : Upload the PHAR artifact
93197 with :
94198 name : box.phar
95199 path : bin/box.phar
96200
201+
97202 publish-phar :
98203 runs-on : ubuntu-latest
99204 name : Publish the PHAR
100- needs : tests
205+ needs :
206+ - unit-tests
207+ - coverage
208+ - e2e-tests
209+ - build-phar
101210 if : github.event_name == 'release'
102211 steps :
103212 - uses : actions/download-artifact@v1
0 commit comments