-
Notifications
You must be signed in to change notification settings - Fork 0
64 lines (59 loc) · 2.96 KB
/
deploy-preprod-to-azurevm.yaml
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
name: Deploy the pre-prod branch code to an Azure Virtual Machine
on:
push:
branches: [ pre-prod ]
jobs:
deployment:
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Copy files using SCP
uses: appleboy/[email protected]
with:
host: ${{ secrets.PANKB_PREPROD_HOST }}
username: ${{ secrets.PANKB_PREPROD_SSH_USERNAME }}
key: ${{ secrets.PANKB_PREPROD_PRIVATE_SSH_KEY }}
source: "."
target: "/projects/pankb_web/django_project"
- name: Create the .env file and (re-)start containers over SSH
uses: appleboy/[email protected]
with:
host: ${{ secrets.PANKB_PREPROD_HOST }}
username: ${{ secrets.PANKB_PREPROD_SSH_USERNAME }}
key: ${{ secrets.PANKB_PREPROD_PRIVATE_SSH_KEY }}
port: 22
script: |
cd /projects/pankb_web/django_project
touch .env
echo $"## Do not put this file under version control!" > .env
echo "" >> .env
echo "## Server type, where the web project is located, values = ('dev' for the DEV server, 'prod' for the both PRE-PROD and PROD servers)" >> .env
echo PROJECT_SERVER="prod" >> .env
echo "" >> .env
echo "## MongoDB type. Only two possible values:" >> .env
echo "# - 'self_deployed' (standalone, deployed on the DEV server in a docker container)" >> .env
echo "# or" >> .env
echo "# - 'cloud' (MongoDB Atlas or Azure CosmosDB for MongoDB)" >> .env
echo DB_TYPE="cloud" >> .env
echo "" >> .env
echo "## Django: The secret key" >> .env
echo SECRET_KEY="${{secrets.PANKB_PREPROD_DJANGO_SECRET_KEY}}" >> .env
echo "" >> .env
echo "## Django: Super-User Credentials" >> .env
echo SUPER_USER_NAME="${{secrets.PANKB_PREPROD_DJANGO_SUPER_USER_NAME}}" >> .env
echo SUPER_USER_PASSWORD="${{secrets.PANKB_PREPROD_DJANGO_SUPER_USER_PASSWORD}}" >> .env
echo SUPER_USER_EMAIL="${{secrets.PANKB_PREPROD_DJANGO_SUPER_USER_EMAIL}}" >> .env
echo "" >> .env
echo "## Mongo database name - same both for the PROD and DEV servers" >> .env
echo MONGODB_NAME="${{secrets.PANKB_PREPROD_MONGODB_NAME}}" >> .env
echo "" >> .env
echo "## MongoDB-PROD (Azure CosmosDB for MongoDB) Connection String" >> .env
echo MONGODB_CONN_STRING="${{secrets.PANKB_PREPROD_MONGODB_CONN_STRING}}" >> .env
echo "" >> .env
echo "## URL address of the separately deployed AI Assistant Web Application" >> .env
echo AI_ASSISTANT_APP_URL="${{vars.PANKB_PREPROD_AI_ASSISTANT_APP_URL}}" >> .env
cat .env
docker compose --profile dev down
docker compose --profile dev up -d --build --force-recreate --remove-orphans
docker system prune --all --force