Skip to content

Change CI/CD (#16)

Change CI/CD (#16) #1

Workflow file for this run

name: Deploy to server
on:
push:
branches:
- production
jobs:
build-and-deploy-frontend:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
- name: Install dependencies
working-directory: ./frontend
run: npm install
- name: Build frontend
working-directory: ./frontend
run: npm run build
- name: Deploy to remote server
uses: easingthemes/ssh-deploy@main
with:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO --delete" # Optional: rsync options for more control
SOURCE: "frontend/dist/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.REMOTE_PATH }}
build-and-deploy-backend:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
- name: Install backend dependencies
working-directory: ./backend
run: npm install
- name: Create .env file
run: |
echo "DB_URL=${{ secrets.DB_URL }}" > ./backend/.env
echo "SESSION_SECRET_KEY=${{ secrets.SESSION_SECRET_KEY }}" >> ./backend/.env
echo "SALT_ROUNDS=${{ secrets.SALT_ROUNDS }}" >> ./backend/.env
echo "PORT=${{ secrets.PORT }}" >> ./backend/.env
- name: Migrate database
working-directory: ./backend
run: npm run migrate:prod
- name: Build backend
working-directory: ./backend
run: npm run build
- name: Deploy to Remote Server
uses: easingthemes/ssh-deploy@main
with:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
ARGS: "-rltgoDzvO --delete" # Optional: rsync options for more control
SOURCE: "backend/"
REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
REMOTE_USER: ${{ secrets.REMOTE_USER }}
TARGET: ${{ secrets.REMOTE_BACKEND_PATH }}
EXCLUDE: "/node_modules/"