diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2fe6e81..8e20abe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,10 +1,14 @@ stages: - deploy + - deploy-streamlit variables: - APP_NAME: "slop.unturf.com" - APP_DIR: "/opt/${APP_NAME}" - VENV_DIR: "${APP_DIR}/venv" + BACKEND_APP_NAME: "slop.unturf.com" + BACKEND_APP_DIR: "/opt/${BACKEND_APP_NAME}" + BACKEND_VENV_DIR: "${BACKEND_APP_DIR}/venv" + STREAMLIT_APP_NAME: "streamlit.slop.unturf.com" + STREAMLIT_APP_DIR: "/opt/${STREAMLIT_APP_NAME}" + STREAMLIT_VENV_DIR: "${STREAMLIT_APP_DIR}/venv" CADDYFILE_DIR: "/etc/caddy" CADDY_SNIPPETS_DIR: "/etc/caddy/caddy_snippets" @@ -17,28 +21,28 @@ deploy: script: # Step 1: Define variables with substitutions - | - SERVICE_NAME="uwsgi-${APP_NAME//./-}.service" # Replace dots with dashes - UWSGI_SOCKET="${APP_DIR}/uwsgi.sock" # Place socket in app directory + SERVICE_NAME="uwsgi-${BACKEND_APP_NAME//./-}.service" # Replace dots with dashes + UWSGI_SOCKET="${BACKEND_APP_DIR}/uwsgi.sock" # Place socket in app directory - # Step 2: Synchronize the code to the application directory + # Step 2: Synchronize the code to the backend application directory - | - if [ ! -d "${APP_DIR}" ]; then - mkdir -p "${APP_DIR}" + if [ ! -d "${BACKEND_APP_DIR}" ]; then + mkdir -p "${BACKEND_APP_DIR}" fi - rsync -a --exclude=data/ --exclude=venv/ --delete "${CI_PROJECT_DIR}/" "${APP_DIR}/" + rsync -a --exclude=data/ --exclude=venv/ --delete "${CI_PROJECT_DIR}/" "${BACKEND_APP_DIR}/" # Step 3: Set up Python virtual environment and install dependencies - | - if [ ! -d "${VENV_DIR}" ]; then - python3 -m venv "${VENV_DIR}" + if [ ! -d "${BACKEND_VENV_DIR}" ]; then + python3 -m venv "${BACKEND_VENV_DIR}" fi - source "${VENV_DIR}/bin/activate" + source "${BACKEND_VENV_DIR}/bin/activate" pip install --upgrade pip - pip install -r "${APP_DIR}/requirements.txt" + pip install -r "${BACKEND_APP_DIR}/requirements.txt" # Step 4: Install uWSGI in virtual environment - | - source "${VENV_DIR}/bin/activate" + source "${BACKEND_VENV_DIR}/bin/activate" pip install uwsgi # Step 5: Create or update the systemd user service file for uWSGI @@ -50,21 +54,19 @@ deploy: cat > ~/.config/systemd/user/${SERVICE_NAME} < "${CADDY_SNIPPETS_DIR}/${APP_NAME}.caddy" < "${CADDY_SNIPPETS_DIR}/${BACKEND_APP_NAME}.caddy" < ~/.config/systemd/user/${SERVICE_NAME} < "${CADDY_SNIPPETS_DIR}/${STREAMLIT_APP_NAME}.caddy" < "${CADDYFILE_DIR}/Caddyfile" cat "${CADDY_SNIPPETS_DIR}"/*.caddy >> "${CADDYFILE_DIR}/Caddyfile" @@ -113,8 +187,8 @@ deploy: # Validate the Caddyfile caddy validate --config "${CADDYFILE_DIR}/Caddyfile" - # Step 8: Reload Caddy service + # Step 7: Reload Caddy service - sudo /bin/systemctl restart caddy.service # Deployment completed - - echo "Deployment completed successfully." \ No newline at end of file + - echo "Streamlit deployment completed successfully." \ No newline at end of file