-
Notifications
You must be signed in to change notification settings - Fork 0
71 lines (58 loc) · 2.85 KB
/
deploy.yml
File metadata and controls
71 lines (58 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
name: Deploy Website to Ubuntu VM
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
environment: deploy
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Setup SSH key
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
run: |
mkdir -p ~/.ssh
printf '%s\n' "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa_team
chmod 600 ~/.ssh/id_rsa_team
- name: Test SSH connection
env:
SSH_USER: ${{ vars.SSH_USER }}
SSH_HOST: ${{ secrets.SERVER_IP }}
SSH_HOST_PORT: ${{ vars.SSH_HOST_PORT }}
run: |
ssh -i ~/.ssh/id_rsa_team -o StrictHostKeyChecking=no -p $SSH_HOST_PORT $SSH_USER@$SSH_HOST "echo Connected!"
# - name: Debug remote server
# env:
# SSH_USER: ${{ vars.SSH_USER }}
# SSH_HOST: ${{ secrets.SERVER_IP }}
# SSH_HOST_PORT: ${{ vars.SSH_HOST_PORT }}
# run: |
# ssh -vvv -i ~/.ssh/id_rsa_team -o StrictHostKeyChecking=no -p $SSH_HOST_PORT $SSH_USER@$SSH_HOST "whoami && pwd && df -h && ls -ld $DEPLOYMENT_DIRECTORY"
- name: Deploy files
env:
SSH_USER: ${{ vars.SSH_USER }}
SSH_HOST: ${{ secrets.SERVER_IP }}
SSH_HOST_PORT: ${{ vars.SSH_HOST_PORT }}
DEPLOYMENT_DIRECTORY: ${{ vars.DEPLOYMENT_DIRECTORY }}
run: |
# Remove old deployment directory on server
ssh -i ~/.ssh/id_rsa_team -o StrictHostKeyChecking=no -p $SSH_HOST_PORT $SSH_USER@$SSH_HOST "rm -rf $DEPLOYMENT_DIRECTORY && mkdir -p $DEPLOYMENT_DIRECTORY"
# ssh -vvv -i ~/.ssh/id_rsa_team -o StrictHostKeyChecking=no -p $SSH_HOST_PORT $SSH_USER@$SSH_HOST "rm -rf $DEPLOYMENT_DIRECTORY && mkdir -p $DEPLOYMENT_DIRECTORY"
# Copy new files from GitHub runner to server
# scp -r -P $SSH_HOST_PORT -o StrictHostKeyChecking=no ./* $SSH_USER@$SSH_HOST:$DEPLOYMENT_DIRECTORY
scp -i ~/.ssh/id_rsa_team -r -P $SSH_HOST_PORT -o StrictHostKeyChecking=no ./* $SSH_USER@$SSH_HOST:$DEPLOYMENT_DIRECTORY
# Fix permissions
ssh -i ~/.ssh/id_rsa_team -o StrictHostKeyChecking=no -p $SSH_HOST_PORT $SSH_USER@$SSH_HOST "chmod 755 -R $DEPLOYMENT_DIRECTORY"
# Run deployment script on server
# ssh -i ~/.ssh/id_rsa_team -p $SSH_HOST_PORT -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST "bash $DEPLOYMENT_DIRECTORY/script/start.sh"
# # build frontend
# cd frontend
# npm install
# npm run build
# # restart backend (FastAPI via uvicorn / systemd / docker)
# cd ../backend
# pip install -r requirements.txt
# systemctl --user restart fastapi.service
# systemctl --user restart nginx.service