62 lines
2.0 KiB
YAML
62 lines
2.0 KiB
YAML
name: Laravel
|
|
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
|
|
jobs:
|
|
laravel-tests:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "8.1"
|
|
- uses: actions/checkout@v3
|
|
- name: Copy .env
|
|
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
|
|
- name: Install Dependencies
|
|
run: composer install -q --no-interaction --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: Execute tests (Unit and Feature tests) via PHPUnit
|
|
env:
|
|
DB_CONNECTION: sqlite
|
|
DB_DATABASE: database/database.sqlite
|
|
run: vendor/bin/phpunit
|
|
|
|
deploy:
|
|
needs: laravel-tests
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Deployment
|
|
uses: appleboy/ssh-action@v0.1.7
|
|
with:
|
|
host: ${{ secrets.SSH_HOST }}
|
|
port: ${{ secrets.SSH_PORT }}
|
|
key: ${{ secrets.SSH_PRIVATE_KEY }}
|
|
username: ${{ secrets.SSH_USERNAME }}
|
|
|
|
script: |
|
|
cd /var/www/stemmechanics.com.au
|
|
(php artisan down) || true
|
|
git fetch origin main
|
|
git reset --hard origin/main
|
|
composer install --no-interaction --prefer-dist --optimize-autoloader
|
|
php artisan migrate --force
|
|
npm install
|
|
npm run build
|
|
npm run prepare
|
|
php artisan optimize
|
|
php artisan up
|