Skip to content

Commit

Permalink
GitHub: Add initial backend & frontend workflows
Browse files Browse the repository at this point in the history
There is definitely room for improvement here (e.g. script duplication
across jobs, passing artifacts from one job to the next, caching
dependencies etc) but this is a simple starting point.
  • Loading branch information
philbates35 committed Jan 17, 2024
1 parent 9c93c81 commit 45de9ec
Show file tree
Hide file tree
Showing 2 changed files with 138 additions and 0 deletions.
83 changes: 83 additions & 0 deletions .github/workflows/backend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Backend

on: [ push, pull_request ]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- uses: actions/checkout@v4
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
# - name: Create Database
# run: |
# mkdir -p database
# touch database/database.sqlite
- name: Run tests
# env:
# DB_CONNECTION: sqlite
# DB_DATABASE: database/database.sqlite
run: composer run test

phpstan:
runs-on: ubuntu-latest
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- uses: actions/checkout@v4
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Run phpstan
run: composer run phpstan

php-cs-fixer:
runs-on: ubuntu-latest
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- uses: actions/checkout@v4
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Run php-cs-fixer
run: composer run php-cs-fixer -- --dry-run

phpcs:
runs-on: ubuntu-latest
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
- uses: actions/checkout@v4
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
run: composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
- name: Generate key
run: php artisan key:generate
- name: Directory Permissions
run: chmod -R 777 storage bootstrap/cache
- name: Run phpcs
run: composer run phpcs
55 changes: 55 additions & 0 deletions .github/workflows/frontend.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Frontend

on: [ push, pull_request ]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8.14.1
- name: Install dependencies
run: pnpm install
- name: Run tests
run: pnpm run test
env:
# See: https://github.com/laravel/vite-plugin/issues/164
LARAVEL_BYPASS_ENV_CHECK: 1

lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8.14.1
- name: Install dependencies
run: pnpm install
- name: Run lint
run: pnpm run lint

format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8.14.1
- name: Install dependencies
run: pnpm install
- name: Check formatting
run: pnpm run format-check

build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 8.14.1
- name: Install dependencies
run: pnpm install
- name: Build
run: pnpm run build

0 comments on commit 45de9ec

Please sign in to comment.