Skip to content

Deploy Development Build #2

Deploy Development Build

Deploy Development Build #2

Workflow file for this run

name: Deploy development build
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
deploy:
name: 🎉 Deploy devlopment build to dev.playdeathgarden.live
runs-on: ubuntu-latest
environment: Dev
defaults:
run:
working-directory: ./dist
steps:
- name: 🚚 Get latest code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install lftp
run: sudo apt-get install lftp
- name: Validate composer.json and composer.lock
run: composer validate
- name: 🧳 Cache Composer dependencies
id: composer-cache
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-node-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-node-
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer install --prefer-dist --no-progress --no-suggest
- name: Use Node.js 18
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: 🔨 Build Project
run: |
npm install
npm run build
- name: Generate maintenance file
run: php artisan down
- name: Generate vendor archive
run: php artisan zip:create ./vendor vendor
- name: Generate public vendor archive
run: php artisan zip:create ./public/assets/vendor vendor_public
- name: 📂 Upload to server
run: |
echo Connecting to FTP server
lftp ${{ secrets.FTP_HOST }} -u "${{ secrets.FTP_USER }}","${{ secrets.FTP_PASS }}" -e "set ftp:ssl-force no; set ssl:verify-certificate false;
echo Uploading maintenance file
put -O ./storage/framework storage/framework/down;
put -O ./storage/framework storage/framework/maintenance.php;
echo Backup config file
mv .env .env_back;
echo Uploading files
mirror -p --parallel=10 --reverse --continue --dereference --only-newer --delete --verbose=3 --exclude ^.git/ --exclude ^.github/ --exclude ^node_modules/ --exclude ^vendor/ --exclude ^public/assets/vendor --exclude ^.env_back --exclude ^.htaccess . ./;
echo Renaming directories
rm ./storage/framework/down;
rm ./storage/framework/maintenance.php;
echo Moving config file
mv .env_back .env;
quit;"
- name: Extract vendor and public vendor archives
run: wget --debug -qO- ${{ vars.URL_VENDOR_UNZIP }}
# - name: Run migrations and seeders
# run: wget -qO- ${{ secrets.URL_DEV_MIGRATIONS }}