name: deploy to production
run-name: ${{ gitea.actor }} has pushed to production

on:
  push:
    branches:
      - master 
  workflow_run:
    workflows:
      - Build and test backend 
      - Build and test frontend 
    types:
      - completed
  workflow_dispatch:

jobs:
  deploy-frontend:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      working-directory: ./frontend
    - run: npm ci 
      name: clean install
      working-directory: ./frontend
    - name: building 
      working-directory: ./frontend
      run: npm run build
    - name: pushing to the server
      working-directory: ./frontend
      run: |
        echo "${{ secrets.SSH_KEY }}" > key
        chmod 0600 key
        scp -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key -r dist/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:
    - run: echo "The website has been deployed. visit https://clyde.herisson.ovh/"

  deploy-backend:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: pushing to the server
      run: |
        echo "${{ secrets.SSH_KEY }}" > key
        chmod 0600 key
        scp -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key -r * ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:api/
    - name: restarting the backend 
      run: |
        ssh -o "StrictHostKeyChecking=no" -o "LogLevel=ERROR" -i key ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} 'cd api/ && sed -i compose.yaml -e "s/8080:8080/4001:8080/" -e "s/8000:8080/4000:8080/" && docker-compose up --force-recreate --build -d'
    - run: echo "The backend has been deployed. running at https://clyde.herisson.ovh/api"