Skip to content

Commit 471f07c

Browse files
authored
Merge pull request #165 from apkostka/feat/environment-based-deploy
feat: add environment-based deployments
2 parents b505b9c + de7b3e4 commit 471f07c

File tree

1 file changed

+21
-27
lines changed

1 file changed

+21
-27
lines changed
Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
name: CI-CD
1+
name: CI-CD (Production)
22

3-
on:
3+
on:
44
push:
55
branches: [ main ]
66
workflow_dispatch:
@@ -11,15 +11,9 @@ concurrency:
1111

1212
jobs:
1313
deploy:
14-
runs-on: ubuntu-latest
14+
environment: production
1515

16-
env:
17-
# local paths
18-
BACKEND_DIR: backend
19-
FRONTEND_DIR: frontend
20-
# remote paths
21-
REMOTE_APP_DIR: /var/www/tenantfirstaid
22-
SERVICE_NAME: tenantfirstaid-backend
16+
runs-on: ubuntu-latest
2317

2418
steps:
2519
- uses: actions/checkout@v4
@@ -29,43 +23,43 @@ jobs:
2923
with:
3024
node-version: 20
3125
cache: npm
32-
cache-dependency-path: ${{ env.FRONTEND_DIR }}/package-lock.json
26+
cache-dependency-path: ${{ vars.FRONTEND_DIR }}/package-lock.json
3327

3428
- name: Build UI
35-
working-directory: ${{ env.FRONTEND_DIR }}
29+
working-directory: ${{ vars.FRONTEND_DIR }}
3630
run: |
3731
npm ci
3832
npm run build
3933
4034
- name: Upload backend code via SCP
4135
uses: appleboy/[email protected]
4236
with:
43-
host: ${{ secrets.DO_HOST }}
44-
username: ${{ secrets.DO_USER }}
37+
host: ${{ vars.URL }}
38+
username: ${{ secrets.SSH_USER }}
4539
key: ${{ secrets.SSH_KEY }}
46-
source: ${{ env.BACKEND_DIR }}/
47-
target: ${{ env.REMOTE_APP_DIR }}
40+
source: ${{ vars.BACKEND_DIR }}/
41+
target: ${{ vars.REMOTE_APP_DIR }}
4842
rm: true
4943

5044
- name: Upload frontend code via SCP
5145
uses: appleboy/[email protected]
5246
with:
53-
host: ${{ secrets.DO_HOST }}
54-
username: ${{ secrets.DO_USER }}
47+
host: ${{ vars.URL }}
48+
username: ${{ secrets.SSH_USER }}
5549
key: ${{ secrets.SSH_KEY }}
56-
source: ${{ env.FRONTEND_DIR }}/dist
57-
target: ${{ env.REMOTE_APP_DIR }}
50+
source: ${{ vars.FRONTEND_DIR }}/dist
51+
target: ${{ vars.REMOTE_APP_DIR }}
5852
rm: false # Otherwise we wipe out the backend code
5953

6054
- name: Bootstrap on droplet
6155
uses: appleboy/[email protected]
6256
with:
63-
host: ${{ secrets.DO_HOST }}
64-
username: ${{ secrets.DO_USER }}
57+
host: ${{ vars.URL }}
58+
username: ${{ secrets.SSH_USER }}
6559
key: ${{ secrets.SSH_KEY }}
6660
script: |
6761
set -e
68-
cd ${{ env.REMOTE_APP_DIR }}/backend/
62+
cd ${{ vars.REMOTE_APP_DIR }}/backend/
6963
7064
# Install uv (fast installer from Astral) if it isn't there
7165
if ! command -v uv >/dev/null 2>&1; then
@@ -81,19 +75,19 @@ jobs:
8175
sudo chmod 750 /etc/tenantfirstaid
8276
sudo chown root:root /etc/tenantfirstaid
8377
cat > /etc/tenantfirstaid/env <<EOF
84-
ENV=prod
78+
ENV=${{ vars.ENV }}
8579
OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}
8680
FLASK_SECRET_KEY=${{ secrets.FLASK_SECRET_KEY }}
8781
DB_HOST=${{secrets.DB_HOST}}
8882
DB_PASSWORD=${{secrets.DB_PASSWORD}}
89-
DB_PORT=${{secrets.DB_PORT}}
83+
DB_PORT=${{vars.DB_PORT}}
9084
DB_USER=default
9185
MODEL_REASONING_EFFORT=high
9286
VECTOR_STORE_ID=${{secrets.VECTOR_STORE_ID}}
9387
EOF
9488
chmod 640 /etc/tenantfirstaid/env
9589
9690
# Ownership, restart, reload
97-
sudo chown -R $USER:www-data ${{ env.REMOTE_APP_DIR }}
98-
sudo systemctl restart ${{ env.SERVICE_NAME }}
91+
sudo chown -R $USER:www-data ${{ vars.REMOTE_APP_DIR }}
92+
sudo systemctl restart ${{ vars.SERVICE_NAME }}
9993
sudo systemctl reload nginx

0 commit comments

Comments
 (0)