Skip to content

Commit 6c36f30

Browse files
author
smoench
committed
rework build workflow
1 parent 242f780 commit 6c36f30

File tree

2 files changed

+146
-97
lines changed

2 files changed

+146
-97
lines changed

.github/workflows/build.yml

Lines changed: 146 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,48 +8,26 @@ on:
88
types: [ created ]
99

1010
jobs:
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

.github/workflows/e2e.yml

Lines changed: 0 additions & 60 deletions
This file was deleted.

0 commit comments

Comments
 (0)