Merge pull request #1604 from cultuurnet/dependabot/composer/sentry/s… #7756
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 | |
jobs: | |
lint: | |
name: Run linting | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📤 Checkout project | |
uses: actions/checkout@v3 | |
- name: 📩 Fetch vendor from cache | |
uses: actions/cache@v3 | |
id: cache | |
with: | |
path: vendor | |
key: composer-${{ hashFiles('**/composer.lock') }} | |
- name: 🐘 Setup PHP | |
uses: shivammathur/setup-php@master | |
with: | |
php-version: "8.2" | |
env: | |
update: true | |
- name: 🔢 Create .env file | |
run: cp .env.ci .env | |
- name: 📦 Install composer dependencies | |
run: | | |
composer config "http-basic.nova.laravel.com" "${{ secrets.NOVA_USERNAME }}" "${{ secrets.NOVA_PASSWORD }}" | |
composer install --quiet --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
- name: 🔑 Generate a laravel key | |
run: php artisan key:generate | |
- name: ✅ Run linting | |
run: ./vendor/bin/php-cs-fixer fix --dry-run -vvv | |
stan: | |
name: Run static analysis | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📤 Checkout project | |
uses: actions/checkout@v3 | |
- name: 📩 Fetch vendor from cache | |
uses: actions/cache@v3 | |
id: cache | |
with: | |
path: vendor | |
key: composer-${{ hashFiles('**/composer.lock') }} | |
- name: 🐘 Setup PHP | |
uses: shivammathur/setup-php@master | |
with: | |
php-version: "8.2" | |
env: | |
update: true | |
- name: 🔢 Create .env file | |
run: cp .env.ci .env | |
- name: 📦 Install composer dependencies | |
run: | | |
composer config "http-basic.nova.laravel.com" "${{ secrets.NOVA_USERNAME }}" "${{ secrets.NOVA_PASSWORD }}" | |
composer install --quiet --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
- name: 🔑 Generate a laravel key | |
run: php artisan key:generate | |
- name: ✅ Run static analysis | |
run: ./vendor/bin/phpstan analyse --no-progress | |
test: | |
name: Run tests | |
runs-on: ubuntu-latest | |
services: | |
mysql: | |
image: mysql:8.0 | |
env: | |
MYSQL_ALLOW_EMPTY_PASSWORD: false | |
MYSQL_ROOT_PASSWORD: secret | |
MYSQL_USER: ppf-user | |
MYSQL_PASSWORD: secret | |
MYSQL_DATABASE: testing | |
ports: | |
- 3306:3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
steps: | |
- name: 📤 Checkout project | |
uses: actions/checkout@v3 | |
- name: 📩 Fetch vendor from cache | |
uses: actions/cache@v3 | |
id: cache | |
with: | |
path: vendor | |
key: composer-${{ hashFiles('**/composer.lock') }} | |
- name: 🐘 Setup PHP | |
uses: shivammathur/setup-php@master | |
with: | |
php-version: "8.2" | |
env: | |
update: true | |
- name: 🐢 Setup NodeJS | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.14 | |
- name: 🔢 Create .env file | |
run: cp .env.ci .env | |
- name: 📦 Install composer dependencies | |
run: | | |
composer config "http-basic.nova.laravel.com" "${{ secrets.NOVA_USERNAME }}" "${{ secrets.NOVA_PASSWORD }}" | |
composer install --quiet --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
- name: 🔑 Generate a laravel key | |
run: php artisan key:generate | |
- name: Install npm dependencies | |
run: npm ci | |
- name: 💅🏻 Build frontend assets | |
run: npm run build | |
- name: ✅ Run tests | |
run: php artisan test | |
frontend-format-check: | |
name: Check formatting frontend files | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📤 Checkout project | |
uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18.14 | |
- name: Install npm dependencies | |
run: npm ci | |
- name: Run format check | |
run: npm run format:check | |
frontend-lint-check: | |
name: Check linting frontend files | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📤 Checkout project | |
uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18.14 | |
- name: Install npm dependencies | |
run: npm ci | |
- name: Run lint check | |
run: npm run lint:check | |
frontend-types-check: | |
name: Check types frontend files | |
runs-on: ubuntu-latest | |
steps: | |
- name: 📤 Checkout project | |
uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18.14 | |
- name: Install npm dependencies | |
run: npm ci | |
- name: Run types check | |
run: npm run types:check |