Skip to content

docs: document tooling, security, and permission updates #17

docs: document tooling, security, and permission updates

docs: document tooling, security, and permission updates #17

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: "8.4"
extensions: mbstring, pdo_sqlite, sqlite3
coverage: none
- name: Cache Composer packages
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-composer-${{ hashFiles('composer.lock') }}
restore-keys: ${{ runner.os }}-composer-
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
- name: Install PHP dependencies
run: composer install --no-interaction --prefer-dist --no-progress
- name: Check code style (Pint)
run: vendor/bin/pint --test
- name: Static analysis (PHPStan)
run: vendor/bin/phpstan analyse --no-progress
- name: Prepare environment
run: |
cp .env.example .env
php artisan key:generate
touch database/database.sqlite
env:
DB_CONNECTION: sqlite
DB_DATABASE: database/database.sqlite
- name: Run migrations
run: php artisan migrate --force
env:
DB_CONNECTION: sqlite
DB_DATABASE: database/database.sqlite
SESSION_DRIVER: file
CACHE_STORE: file
QUEUE_CONNECTION: sync
- name: Validate routes
run: php artisan route:list --except-vendor
env:
DB_CONNECTION: sqlite
DB_DATABASE: database/database.sqlite
SESSION_DRIVER: file
CACHE_STORE: file
QUEUE_CONNECTION: sync
- name: Run tests
run: php artisan test
env:
DB_CONNECTION: sqlite
DB_DATABASE: ":memory:"
SESSION_DRIVER: array
CACHE_STORE: array
QUEUE_CONNECTION: sync
- name: Install JS dependencies
run: npm ci
- name: Build frontend
run: npm run build