@@ -11,6 +11,9 @@ name: 🧪 Testing (SQLite)
1111env :
1212 # Disable docker support in Makefile
1313 APP_RUNNER : ' cd app &&'
14+ APP_NAME : laravel
15+ SHARED_SERVICES_NAMESPACE : ss
16+ COMPOSE_PROJECT_NAME : laravel-starter-tpl
1417
1518jobs :
1619 code-coverage :
4952 run : make validate-composer
5053
5154 - name : 🔍 Get composer cache directory
52- uses :
wayofdev/gh-actions/actions/composer/[email protected] .0 55+ uses :
wayofdev/gh-actions/actions/composer/[email protected] .1 5356 with :
5457 working-directory : app
5558
6164 restore-keys : php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-
6265
6366 - name : 📥 Install "${{ matrix.dependencies }}" dependencies with composer
64- uses :
wayofdev/gh-actions/actions/composer/[email protected] .0 67+ uses :
wayofdev/gh-actions/actions/composer/[email protected] .1 6568 with :
6669 working-directory : app
6770 dependencies : ${{ matrix.dependencies }}
7073 run : |
7174 make env
7275 cp -rf .env app/.env
73- env :
74- APP_NAME : laravel
75- SHARED_SERVICES_NAMESPACE : ss
76- COMPOSE_PROJECT_NAME : laravel-starter-tpl
7776
7877 - name : 🔑 Generate secret application key
7978 working-directory : app
@@ -89,3 +88,133 @@ jobs:
8988 files : app/.build/phpunit/logs/clover.xml
9089 token : ${{ secrets.CODECOV_TOKEN }}
9190 verbose : true
91+
92+ arch-testing :
93+ timeout-minutes : 4
94+ runs-on : ${{ matrix.os }}
95+ concurrency :
96+ cancel-in-progress : true
97+ group : arch-testing-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}-${{ matrix.php-version }}-${{ matrix.dependencies }}
98+ strategy :
99+ fail-fast : true
100+ matrix :
101+ os :
102+ - ubuntu-latest
103+ php-version :
104+ - ' 8.3'
105+ dependencies :
106+ - locked
107+ steps :
108+ - name : 📦 Check out the codebase
109+ 110+
111+ - name : 🛠️ Setup PHP
112+ uses :
shivammathur/[email protected] 113+ with :
114+ php-version : ${{ matrix.php-version }}
115+ extensions : mbstring, pdo, pdo_sqlite
116+ ini-values : error_reporting=E_ALL
117+ coverage : xdebug
118+
119+ - name : 🛠️ Setup problem matchers
120+ run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
121+
122+ - name : 🤖 Validate composer.json and composer.lock
123+ run : make validate-composer
124+
125+ - name : 🔍 Get composer cache directory
126+ uses :
wayofdev/gh-actions/actions/composer/[email protected] 127+ with :
128+ working-directory : app
129+
130+ - name : ♻️ Restore cached dependencies installed with composer
131+ 132+ with :
133+ path : ${{ env.COMPOSER_CACHE_DIR }}
134+ key : php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}
135+ restore-keys : php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-
136+
137+ - name : 📥 Install "${{ matrix.dependencies }}" dependencies with composer
138+ uses :
wayofdev/gh-actions/actions/composer/[email protected] 139+ with :
140+ working-directory : app
141+ dependencies : ${{ matrix.dependencies }}
142+
143+ - name : 🛠️ Prepare environment
144+ run : |
145+ make env
146+ cp -rf .env app/.env
147+
148+ - name : 🔑 Generate secret application key
149+ working-directory : app
150+ run : php artisan key:generate
151+
152+ - name : 🧪 Run architecture tests using pestphp/pest
153+ working-directory : app
154+ run : composer test:arch
155+
156+ mutation-testing :
157+ timeout-minutes : 16
158+ runs-on : ${{ matrix.os }}
159+ concurrency :
160+ cancel-in-progress : true
161+ group : mutation-testing-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
162+ strategy :
163+ fail-fast : true
164+ matrix :
165+ os :
166+ - ubuntu-latest
167+ php-version :
168+ - ' 8.3'
169+ dependencies :
170+ - locked
171+ steps :
172+ - name : 📦 Check out the codebase
173+ 174+
175+ - name : 🛠️ Setup PHP
176+ uses :
shivammathur/[email protected] 177+ with :
178+ php-version : ${{ matrix.php-version }}
179+ extensions : mbstring, pdo, pdo_sqlite
180+ ini-values : error_reporting=E_ALL
181+ coverage : xdebug
182+
183+ - name : 🛠️ Setup problem matchers
184+ run : echo "::add-matcher::${{ runner.tool_cache }}/php.json"
185+
186+ - name : 🤖 Validate composer.json and composer.lock
187+ run : make validate-composer
188+
189+ - name : 🔍 Get composer cache directory
190+ uses :
wayofdev/gh-actions/actions/composer/[email protected] 191+ with :
192+ working-directory : app
193+
194+ - name : ♻️ Restore cached dependencies installed with composer
195+ 196+ with :
197+ path : ${{ env.COMPOSER_CACHE_DIR }}
198+ key : php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}
199+ restore-keys : php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-
200+
201+ - name : 📥 Install "${{ matrix.dependencies }}" dependencies with composer
202+ uses :
wayofdev/gh-actions/actions/composer/[email protected] 203+ with :
204+ working-directory : app
205+ dependencies : ${{ matrix.dependencies }}
206+
207+ - name : 🛠️ Prepare environment
208+ run : |
209+ make env
210+ cp -rf .env app/.env
211+
212+ - name : 🔑 Generate secret application key
213+ working-directory : app
214+ run : php artisan key:generate
215+
216+ - name : 🧪 Run mutation testing using Xdebug and infection/infection
217+ working-directory : app
218+ run : composer infect:ci
219+ env :
220+ STRYKER_DASHBOARD_API_KEY : ${{ secrets.STRYKER_DASHBOARD_API_KEY }}
0 commit comments