diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8e20abe..7d47e21 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,127 +1,30 @@ stages: - deploy - - deploy-streamlit variables: - 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" + # Change these to match your desired domain/app name + STREAMLIT_APP_NAME: "art.unturf.com" STREAMLIT_APP_DIR: "/opt/${STREAMLIT_APP_NAME}" STREAMLIT_VENV_DIR: "${STREAMLIT_APP_DIR}/venv" + + # Adjust if your main Streamlit script has a different filename + STREAMLIT_SCRIPT_FILENAME: "streamlit_art_app.py" + + # Caddy-related directories CADDYFILE_DIR: "/etc/caddy" CADDY_SNIPPETS_DIR: "/etc/caddy/caddy_snippets" deploy: stage: deploy tags: - - master.unturf.com + - master.unturf.com # Change to match your runner’s tags only: - main # Deploy only from the 'main' branch script: - # Step 1: Define variables with substitutions - - | - 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 backend application directory - - | - if [ ! -d "${BACKEND_APP_DIR}" ]; then - mkdir -p "${BACKEND_APP_DIR}" - fi - 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 "${BACKEND_VENV_DIR}" ]; then - python3 -m venv "${BACKEND_VENV_DIR}" - fi - source "${BACKEND_VENV_DIR}/bin/activate" - pip install --upgrade pip - pip install -r "${BACKEND_APP_DIR}/requirements.txt" - - # Step 4: Install uWSGI in virtual environment - - | - source "${BACKEND_VENV_DIR}/bin/activate" - pip install uwsgi - - # Step 5: Create or update the systemd user service file for uWSGI - - | - mkdir -p ~/.config/systemd/user/ - - # Set the MODULE for slop_with_models.py - MODULE="slop_with_models:app" - - cat > ~/.config/systemd/user/${SERVICE_NAME} < "${CADDY_SNIPPETS_DIR}/${BACKEND_APP_NAME}.caddy" < ~/.config/systemd/user/${SERVICE_NAME} < "${CADDYFILE_DIR}/Caddyfile" cat "${CADDY_SNIPPETS_DIR}"/*.caddy >> "${CADDYFILE_DIR}/Caddyfile" - # Validate the Caddyfile + # Validate the final Caddyfile caddy validate --config "${CADDYFILE_DIR}/Caddyfile" - # Step 7: Reload Caddy service - sudo /bin/systemctl restart caddy.service - # Deployment completed - - echo "Streamlit deployment completed successfully." \ No newline at end of file + - echo "Streamlit deployment for ${STREAMLIT_APP_NAME} completed successfully."