Fix for Azure Cosmos MongoDB instance, which does not fully support $… #23
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: 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 | |
with: | |
persist-credentials: false | |
- 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 |