diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e5e1990..64a201e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,138 +1,30 @@ stages: - deploy - - deploy-streamlit -# ------------------------------------------------------------------- -# GLOBAL VARIABLES FOR THE NEW ART APP -# (Adjust as appropriate for your setup) -# ------------------------------------------------------------------- variables: - # ————— BACKEND CONFIG ————— - BACKEND_APP_NAME: "art.ai.unturf.com" - BACKEND_APP_DIR: "/opt/${BACKEND_APP_NAME}" - BACKEND_VENV_DIR: "${BACKEND_APP_DIR}/venv" - - # ————— STREAMLIT CONFIG ————— - STREAMLIT_APP_NAME: "streamlit.art.unturf.com" + # Change these to match your desired domain/app name + STREAMLIT_APP_NAME: "art.ai.unturf.com" STREAMLIT_APP_DIR: "/opt/${STREAMLIT_APP_NAME}" STREAMLIT_VENV_DIR: "${STREAMLIT_APP_DIR}/venv" - STREAMLIT_SCRIPT_FILENAME: "streamlit_art_app.py" # Adjust to the filename of your new app - # ————— CADDY CONFIG ————— + # 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 FOR BACKEND (optional if you only have a Streamlit front-end) -# ------------------------------------------------------------------- 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 - # If using a backend requirements.txt, you can install it here: - # pip install -r "${BACKEND_APP_DIR}/requirements-backend.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/ - - # If your backend entry point is something like my_app.py with a Flask "app" variable: - MODULE="my_backend: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 for ${STREAMLIT_APP_NAME} completed successfully."