Adjusting structrue for deployment #38
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI/CD Pipeline | |
on: | |
push: | |
branches: | |
- main # Trigger deployment only on push to the main branch | |
pull_request: | |
branches: | |
- main # Run checks on PRs, but don't deploy | |
jobs: | |
# --- Build Frontend --- | |
build-frontend: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Node.js for frontend | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' # Specify the Node.js version | |
- name: Install frontend dependencies | |
working-directory: ./frontend # Navigate to the frontend folder | |
run: npm install | |
- name: Build frontend | |
working-directory: ./frontend | |
run: npm run build | |
- name: Upload frontend artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: angular-build | |
path: ./frontend/dist/smetovi/ # Path to Angular build files | |
# --- Build Backend --- | |
build-backend: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Node.js for backend | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' # Specify the Node.js version | |
- name: Install backend dependencies | |
working-directory: ./backend # Navigate to the backend folder | |
run: npm install | |
- name: Upload backend artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: backend-artifact | |
path: ./backend # Upload the backend folder for deployment | |
# --- Deploy Frontend --- | |
deploy-frontend: | |
runs-on: ubuntu-latest | |
needs: build-frontend # Ensure the frontend build completes before deployment | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Download frontend artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: angular-build | |
path: ./frontend/dist/smetovi/ # Download the Angular build | |
- name: Deploy frontend to cPanel via FTP | |
uses: SamKirkland/[email protected] | |
with: | |
server: ${{ secrets.FTP_SERVER }} | |
username: ${{ secrets.FTP_USERNAME }} | |
password: ${{ secrets.FTP_PASSWORD }} | |
local-dir: ./frontend/dist/smetovi/ # Deploy directly to the root | |
server-dir: /public_html/ # Path where frontend files are deployed on server | |
port: ${{ secrets.FTP_PORT }} | |
log-level: verbose | |
delete: true # Optional: Remove old files in the target directory | |
# --- Deploy Backend --- | |
deploy-backend: | |
runs-on: ubuntu-latest | |
needs: build-backend # Ensure the backend build completes before deployment | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Download backend artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: backend-artifact | |
path: ./backend/ # This should be a directory with a trailing slash | |
- name: Deploy backend to cPanel via FTP | |
uses: SamKirkland/[email protected] | |
with: | |
server: ${{ secrets.FTP_SERVER }} | |
username: ${{ secrets.FTP_USERNAME }} | |
password: ${{ secrets.FTP_PASSWORD }} | |
local-dir: ./backend/ # Ensure this is a directory with a trailing slash | |
server-dir: /public_html/backend/ # Adjust the path as necessary | |
port: ${{ secrets.FTP_PORT }} | |
log-level: verbose |