[FEATURE] Application Organization #1426
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- master | |
- develop | |
pull_request: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-php: | |
name: Build ${{ matrix.php }} / ${{ matrix.symfony }} | |
runs-on: ubuntu-latest | |
strategy: | |
max-parallel: 4 | |
fail-fast: false | |
matrix: | |
php: ['8.1', '8.2', '8.3'] | |
symfony: ['^5.4', '^6.4'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: mbstring, xml, ctype, iconv | |
coverage: none | |
- name: Setup Composer cache | |
id: composer-cache | |
run: | | |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Recover Composer caches | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock', '**/composer.json') }} | |
restore-keys: | | |
${{ runner.os }}-composer- | |
- name: Install dependencies (Composer) | |
run: | | |
sed -ri 's/"symfony\/dependency-injection": "(.+)"/"symfony\/dependency-injection": "'${{ matrix.symfony }}'"/' composer.json; | |
sed -ri 's/"symfony\/form": "(.+)"/"symfony\/form": "'${{ matrix.symfony }}'"/' composer.json; | |
sed -ri 's/"symfony\/framework-bundle": "(.+)"/"symfony\/framework-bundle": "'${{ matrix.symfony }}'"/' composer.json; | |
sed -ri 's/"symfony\/http-kernel": "(.+)"/"symfony\/http-kernel": "'${{ matrix.symfony }}'"/' composer.json; | |
sed -ri 's/"symfony\/security-bundle": "(.+)"/"symfony\/security-bundle": "'${{ matrix.symfony }}'"/' composer.json; | |
sed -ri 's/"symfony\/translation": "(.+)"/"symfony\/translation": "'${{ matrix.symfony }}'"/' composer.json; | |
sed -ri 's/"symfony\/twig-bundle": "(.+)"/"symfony\/twig-bundle": "'${{ matrix.symfony }}'"/' composer.json; | |
sed -ri 's/"symfony\/phpunit-bridge": "(.+)"/"symfony\/phpunit-bridge": "'${{ matrix.symfony }}'"/' composer.json; | |
composer update --prefer-dist --no-progress | |
composer info | |
git checkout composer.json | |
- name: Lint | |
run: composer t3g:test:php:lint | |
- name: CGL | |
run: composer t3g:cgl | |
- name: Unit Tests | |
run: composer t3g:test:php:unit | |
- name: Git Status | |
run: | | |
git status | |
git status | grep -q "nothing to commit, working tree clean" | |
build-frontend: | |
name: Build Frontend | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup npm cache | |
id: npm-cache-dir | |
shell: bash | |
run: | | |
echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} | |
- name: Recover npm caches | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.npm-cache-dir.outputs.dir }} | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Install dependencies (npm) | |
run: npm ci | |
- name: Build frontend artifacts | |
run: npm run build | |
- name: Stylelint | |
run: npm run stylelint | |
- name: Git Status | |
run: | | |
git status | |
git status | grep -q "nothing to commit, working tree clean" |