From fdb4ebe88a0a1b811d2cc2203138f09bac5ea182 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 12 May 2026 09:56:01 +0200 Subject: [PATCH 1/5] Simplify environment variable handling --- .env.sample | 1 - README.md | 2 -- ci.Qa.yml | 35 +++++++++++++++-------------------- ci.dev.yml | 28 ++++++++++++---------------- ci.prod.yml | 26 ++++++++++++-------------- ci.yml | 29 +++++++++++++++-------------- 6 files changed, 54 insertions(+), 67 deletions(-) diff --git a/.env.sample b/.env.sample index 8627d06..615e134 100644 --- a/.env.sample +++ b/.env.sample @@ -1,4 +1,3 @@ -export TEAM_ID=$(cs list workspaces | grep $WORKSPACE_ID | awk '{print $2}') export UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install export UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin export UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv diff --git a/README.md b/README.md index bfcc8f0..c9a54eb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # python-demo test -before running any stage you will need to set up a 'CS_TOKEN' env var containing an Codesphere API key. - # open backend api docs `/api/docs` or `/api/redoc` diff --git a/ci.Qa.yml b/ci.Qa.yml index 3d0f976..0f2e483 100644 --- a/ci.Qa.yml +++ b/ci.Qa.yml @@ -1,43 +1,33 @@ schemaVersion: v0.2 prepare: steps: - - name: install Codesphere cli tool - command: mkdir -p $HOME/.local/bin && wget -qO- - 'https://api.github.com/repos/codesphere-cloud/cs-go/releases/latest' | - grep linux_amd64 | grep browser_download_url | sed s/.*https/https/ | - sed s/\".*$// | xargs wget -O $HOME/.local/bin/cs && chmod +x - $HOME/.local/bin/cs - name: install uv standalone version command: curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv - - command: cp -n .env.sample .env - - name: "set ev vars " - command: . .env && cs set-env -w $WORKSPACE_ID -t $TEAM_ID --env-var - UV_PYTHON_INSTALL_DIR=$PWD/.codesphere-internal/.uv-python-install - --env-var UV_PYTHON_BIN_DIR=$PWD/.codesphere-internal/.uv-python-bin - --env-var UV_CACHE_DIR=$PWD/.codesphere-internal/.uv --env-var - UV_PYTHON_CACHE_DIR=$PWD/.codesphere-internal/.uv-python - name: install frontend environment - command: . ./env && cd frontend && { [ ! -d ".venv" ] && uv venv; uv sync - --no-dev; } + command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment - command: . ./env && cd backend && { [ ! -d ".venv" ] && uv venv; uv sync - --no-dev; } + command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } test: steps: [] run: frontend: steps: - name: start frontend application - command: ". ./env && cd frontend && uv run streamlit run main.py - --server.headless true --server.address 0.0.0.0 --server.port 3000 - --browser.gatherUsageStats false --logger.level info " + command: "cd frontend && uv run streamlit run main.py --server.headless true + --server.address 0.0.0.0 --server.port 3000 --browser.gatherUsageStats + false --logger.level info " plan: 20 replicas: 1 isPublic: true network: path: / stripPath: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python backend: steps: - name: start backend application @@ -46,6 +36,11 @@ run: plan: 20 replicas: 1 isPublic: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python api-docs: steps: - name: deploy docs diff --git a/ci.dev.yml b/ci.dev.yml index b82cf69..b53cf5f 100644 --- a/ci.dev.yml +++ b/ci.dev.yml @@ -1,27 +1,13 @@ schemaVersion: v0.2 prepare: steps: - - name: install Codesphere cli tool - command: mkdir -p $HOME/.local/bin && wget -qO- - 'https://api.github.com/repos/codesphere-cloud/cs-go/releases/latest' | - grep linux_amd64 | grep browser_download_url | sed s/.*https/https/ | - sed s/\".*$// | xargs wget -O $HOME/.local/bin/cs && chmod +x - $HOME/.local/bin/cs - name: install uv standalone version command: curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv - - name: copy template .env file - command: cp -n .env.sample .env - - name: "set ev vars " - command: . .env && cs set-env -w $WORKSPACE_ID -t $TEAM_ID --env-var - UV_PYTHON_INSTALL_DIR=$PWD/.codesphere-internal/.uv-python-install - --env-var UV_PYTHON_BIN_DIR=$PWD/.codesphere-internal/.uv-python-bin - --env-var UV_CACHE_DIR=$PWD/.codesphere-internal/.uv --env-var - UV_PYTHON_CACHE_DIR=$PWD/.codesphere-internal/.uv-python - name: install frontend environment - command: . ./env && cd frontend && { [ ! -d ".venv" ] && uv venv; uv sync; } + command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } - name: install backend environment - command: . ./env && cd backend && { [ ! -d ".venv" ] && uv venv; uv sync; } + command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } test: steps: - name: test frontend @@ -48,6 +34,11 @@ run: network: path: / stripPath: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python backend: steps: - name: start backend application @@ -56,6 +47,11 @@ run: plan: 20 replicas: 1 isPublic: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python api-docs: steps: - name: deploy docs diff --git a/ci.prod.yml b/ci.prod.yml index 2f51ae9..ae9109d 100644 --- a/ci.prod.yml +++ b/ci.prod.yml @@ -1,24 +1,12 @@ schemaVersion: v0.2 prepare: steps: - - name: install Codesphere cli tool - command: mkdir -p $HOME/.local/bin && wget -qO- - 'https://api.github.com/repos/codesphere-cloud/cs-go/releases/latest' | - grep linux_amd64 | grep browser_download_url | sed s/.*https/https/ | - sed s/\".*$// | xargs wget -O $HOME/.local/bin/cs && chmod +x - $HOME/.local/bin/cs - name: install uv standalone version command: nix-env -iA nixpkgs.uv - - name: "set ev vars " - command: . .env && cs set-env -w $WORKSPACE_ID -t $TEAM_ID --env-var - UV_PYTHON_INSTALL_DIR=$PWD/.codesphere-internal/.uv-python-install - --env-var UV_PYTHON_BIN_DIR=$PWD/.codesphere-internal/.uv-python-bin - --env-var UV_CACHE_DIR=$PWD/.codesphere-internal/.uv --env-var - UV_PYTHON_CACHE_DIR=$PWD/.codesphere-internal/.uv-python - name: install frontend environment - command: cd frontend && { [ ! -d ".venv" ] && uv venv; uv sync --no-dev; } + command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment - command: cd backend && { [ ! -d ".venv" ] && uv venv; uv sync --no-dev; } + command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } test: steps: [] run: @@ -34,6 +22,11 @@ run: network: path: / stripPath: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python backend: steps: - name: start backend application @@ -42,6 +35,11 @@ run: plan: 8 replicas: 1 isPublic: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python api-docs: steps: - name: deploy docs diff --git a/ci.yml b/ci.yml index 80289cc..a21e9eb 100644 --- a/ci.yml +++ b/ci.yml @@ -1,37 +1,33 @@ schemaVersion: v0.2 prepare: steps: - - name: install Codesphere cli tool - command: mkdir -p $HOME/.local/bin && wget -qO- - 'https://api.github.com/repos/codesphere-cloud/cs-go/releases/latest' | - grep linux_amd64 | grep browser_download_url | sed s/.*https/https/ | - sed s/\".*$// | xargs wget -O $HOME/.local/bin/cs && chmod +x - $HOME/.local/bin/cs - name: install uv standalone version command: curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv - - command: cp -n .env.sample .env - name: install frontend environment - command: . ./env && cd frontend && { [ ! -d ".venv" ] && uv venv; uv sync - --no-dev; } + command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment - command: . ./env && cd backend && { [ ! -d ".venv" ] && uv venv; uv sync - --no-dev; } + command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } test: steps: [] run: frontend: steps: - name: start frontend application - command: ". ./env && cd frontend && uv run streamlit run main.py - --server.headless true --server.address 0.0.0.0 --server.port 3000 - --browser.gatherUsageStats false --logger.level info " + command: "cd frontend && uv run streamlit run main.py --server.headless true + --server.address 0.0.0.0 --server.port 3000 --browser.gatherUsageStats + false --logger.level info " plan: 8 replicas: 1 isPublic: true network: path: / stripPath: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python backend: steps: - name: start backend application @@ -40,6 +36,11 @@ run: plan: 8 replicas: 1 isPublic: false + env: + UV_PYTHON_INSTALL_DIR: /home/user/app/.codesphere-internal/.uv-python-install + UV_PYTHON_BIN_DIR: /home/user/app/.codesphere-internal/.uv-python-bin + UV_CACHE_DIR: /home/user/app/.codesphere-internal/.uv + UV_PYTHON_CACHE_DIR: /home/user/app/.codesphere-internal/.uv-python api-docs: steps: - name: deploy docs From 93fcf87fa9aa2536bf029e037ff7986627d01e8b Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 12 May 2026 10:45:16 +0200 Subject: [PATCH 2/5] Only install uv when not available --- ci.Qa.yml | 4 ++-- ci.dev.yml | 4 ++-- ci.prod.yml | 3 ++- ci.yml | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ci.Qa.yml b/ci.Qa.yml index 0f2e483..7613b0d 100644 --- a/ci.Qa.yml +++ b/ci.Qa.yml @@ -2,8 +2,8 @@ schemaVersion: v0.2 prepare: steps: - name: install uv standalone version - command: curl -LsSf https://astral.sh/uv/install.sh | env - UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv + command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh + | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment diff --git a/ci.dev.yml b/ci.dev.yml index b53cf5f..c28b08c 100644 --- a/ci.dev.yml +++ b/ci.dev.yml @@ -2,8 +2,8 @@ schemaVersion: v0.2 prepare: steps: - name: install uv standalone version - command: curl -LsSf https://astral.sh/uv/install.sh | env - UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv + command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh + | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } - name: install backend environment diff --git a/ci.prod.yml b/ci.prod.yml index ae9109d..0e6ca12 100644 --- a/ci.prod.yml +++ b/ci.prod.yml @@ -2,7 +2,8 @@ schemaVersion: v0.2 prepare: steps: - name: install uv standalone version - command: nix-env -iA nixpkgs.uv + command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh + | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment diff --git a/ci.yml b/ci.yml index a21e9eb..01908ec 100644 --- a/ci.yml +++ b/ci.yml @@ -2,8 +2,8 @@ schemaVersion: v0.2 prepare: steps: - name: install uv standalone version - command: curl -LsSf https://astral.sh/uv/install.sh | env - UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv + command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh + | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment From 943548bbbe6ebad494667efc415d42302d570daa Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 12 May 2026 19:46:13 +0200 Subject: [PATCH 3/5] fix uv not sync not found error --- ci.Qa.yml | 4 ++-- ci.dev.yml | 4 ++-- ci.prod.yml | 4 ++-- ci.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ci.Qa.yml b/ci.Qa.yml index 7613b0d..c7a79c5 100644 --- a/ci.Qa.yml +++ b/ci.Qa.yml @@ -5,9 +5,9 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment - command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } test: steps: [] run: diff --git a/ci.dev.yml b/ci.dev.yml index c28b08c..41715cf 100644 --- a/ci.dev.yml +++ b/ci.dev.yml @@ -5,9 +5,9 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } + command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } - name: install backend environment - command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } + command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } test: steps: - name: test frontend diff --git a/ci.prod.yml b/ci.prod.yml index 0e6ca12..dd8a00a 100644 --- a/ci.prod.yml +++ b/ci.prod.yml @@ -5,9 +5,9 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment - command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } test: steps: [] run: diff --git a/ci.yml b/ci.yml index 01908ec..36fa2b4 100644 --- a/ci.yml +++ b/ci.yml @@ -5,9 +5,9 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } - name: install backend environment - command: cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } test: steps: [] run: From 283048bca26fa5cf870a54c4ecd1264711e23448 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 12 May 2026 19:57:15 +0200 Subject: [PATCH 4/5] remove .env mentions --- ci.Qa.yml | 4 ++-- ci.dev.yml | 14 +++++++------- ci.yml | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ci.Qa.yml b/ci.Qa.yml index c7a79c5..b79d5bb 100644 --- a/ci.Qa.yml +++ b/ci.Qa.yml @@ -31,7 +31,7 @@ run: backend: steps: - name: start backend application - command: . ./env && cd backend && uv run uvicorn app:app --port 3000 --host + command: cd backend && uv run uvicorn app:app --port 3000 --host 0.0.0.0 --workers 2 plan: 20 replicas: 1 @@ -44,7 +44,7 @@ run: api-docs: steps: - name: deploy docs - command: . ./env && cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 + command: cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 --workers 2 plan: 20 replicas: 1 diff --git a/ci.dev.yml b/ci.dev.yml index 41715cf..32d7129 100644 --- a/ci.dev.yml +++ b/ci.dev.yml @@ -11,22 +11,22 @@ prepare: test: steps: - name: test frontend - command: . ./env && cd frontend && uv run pytest + command: cd frontend && uv run pytest - name: test backend - command: ". ./env && cd backend && uv run pytest " + command: cd backend && uv run pytest - name: security check frontend - command: '. ./env && cd frontend && uv run bandit -r . -c pyproject.toml + command: 'cd frontend && uv run bandit -r . -c pyproject.toml --format=custom --msg-template "{abspath}:{line}: {test_id}[{severity}]: {msg}" -o bandit-results.txt' - name: security check backend - command: '. ./env && cd backend && uv run bandit -r . -c pyproject.toml + command: 'cd backend && uv run bandit -r . -c pyproject.toml --format=custom --msg-template "{abspath}:{line}: {test_id}[{severity}]: {msg}" -o bandit-results.txt' run: frontend: steps: - name: start frontend application - command: . ./env && cd frontend && uv run streamlit run --server.address 0.0.0.0 + command: cd frontend && uv run streamlit run --server.address 0.0.0.0 --server.port 3000 main.py plan: 20 replicas: 1 @@ -42,7 +42,7 @@ run: backend: steps: - name: start backend application - command: . ./env && cd backend && uv run uvicorn app:app --reload --port 3000 + command: cd backend && uv run uvicorn app:app --reload --port 3000 --host 0.0.0.0 plan: 20 replicas: 1 @@ -55,7 +55,7 @@ run: api-docs: steps: - name: deploy docs - command: . ./env && cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 + command: cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 plan: 20 replicas: 1 diff --git a/ci.yml b/ci.yml index 36fa2b4..2041757 100644 --- a/ci.yml +++ b/ci.yml @@ -31,7 +31,7 @@ run: backend: steps: - name: start backend application - command: . ./env && cd backend && uv run uvicorn app:app --port 3000 --host + command: cd backend && uv run uvicorn app:app --port 3000 --host 0.0.0.0 --workers 2 plan: 8 replicas: 1 @@ -44,7 +44,7 @@ run: api-docs: steps: - name: deploy docs - command: . ./env && cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 + command: cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 --workers 2 plan: 8 replicas: 1 From d74466a8f3a08d0d6a31b60855385b892366fa09 Mon Sep 17 00:00:00 2001 From: simon Date: Tue, 12 May 2026 23:50:06 +0200 Subject: [PATCH 5/5] Make commands more robust --- ci.Qa.yml | 21 ++++++++++++--------- ci.dev.yml | 34 ++++++++++++++++++---------------- ci.prod.yml | 21 ++++++++++++--------- ci.yml | 21 ++++++++++++--------- 4 files changed, 54 insertions(+), 43 deletions(-) diff --git a/ci.Qa.yml b/ci.Qa.yml index b79d5bb..06c3b43 100644 --- a/ci.Qa.yml +++ b/ci.Qa.yml @@ -5,18 +5,21 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync --no-dev; } - name: install backend environment - command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync --no-dev; } test: steps: [] run: frontend: steps: - name: start frontend application - command: "cd frontend && uv run streamlit run main.py --server.headless true - --server.address 0.0.0.0 --server.port 3000 --browser.gatherUsageStats - false --logger.level info " + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && $UV run streamlit run main.py --server.headless true --server.address + 0.0.0.0 --server.port 3000 --browser.gatherUsageStats false --logger.level + info plan: 20 replicas: 1 isPublic: true @@ -31,8 +34,8 @@ run: backend: steps: - name: start backend application - command: cd backend && uv run uvicorn app:app --port 3000 --host - 0.0.0.0 --workers 2 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn app:app --port 3000 --host 0.0.0.0 --workers 2 plan: 20 replicas: 1 isPublic: false @@ -44,8 +47,8 @@ run: api-docs: steps: - name: deploy docs - command: cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 - --port 3000 --workers 2 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 --workers 2 plan: 20 replicas: 1 isPublic: true diff --git a/ci.dev.yml b/ci.dev.yml index 32d7129..caa9031 100644 --- a/ci.dev.yml +++ b/ci.dev.yml @@ -5,29 +5,31 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync; } - name: install backend environment - command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync; } test: steps: - name: test frontend - command: cd frontend && uv run pytest + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend && $UV run pytest - name: test backend - command: cd backend && uv run pytest + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend && $UV run pytest - name: security check frontend - command: 'cd frontend && uv run bandit -r . -c pyproject.toml - --format=custom --msg-template "{abspath}:{line}: {test_id}[{severity}]: - {msg}" -o bandit-results.txt' + command: 'UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && $UV run bandit -r . -c pyproject.toml --format=custom --msg-template + "{abspath}:{line}: {test_id}[{severity}]: {msg}" -o bandit-results.txt' - name: security check backend - command: 'cd backend && uv run bandit -r . -c pyproject.toml - --format=custom --msg-template "{abspath}:{line}: {test_id}[{severity}]: - {msg}" -o bandit-results.txt' + command: 'UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run bandit -r . -c pyproject.toml --format=custom --msg-template + "{abspath}:{line}: {test_id}[{severity}]: {msg}" -o bandit-results.txt' run: frontend: steps: - name: start frontend application - command: cd frontend && uv run streamlit run --server.address 0.0.0.0 - --server.port 3000 main.py + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && $UV run streamlit run --server.address 0.0.0.0 --server.port 3000 main.py plan: 20 replicas: 1 isPublic: true @@ -42,8 +44,8 @@ run: backend: steps: - name: start backend application - command: cd backend && uv run uvicorn app:app --reload --port 3000 - --host 0.0.0.0 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn app:app --reload --port 3000 --host 0.0.0.0 plan: 20 replicas: 1 isPublic: false @@ -55,8 +57,8 @@ run: api-docs: steps: - name: deploy docs - command: cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 - --port 3000 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 plan: 20 replicas: 1 isPublic: true diff --git a/ci.prod.yml b/ci.prod.yml index dd8a00a..831b84e 100644 --- a/ci.prod.yml +++ b/ci.prod.yml @@ -5,18 +5,21 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync --no-dev; } - name: install backend environment - command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync --no-dev; } test: steps: [] run: frontend: steps: - name: start frontend application - command: "cd frontend && uv run streamlit run main.py --server.headless true - --server.address 0.0.0.0 --server.port 3000 --browser.gatherUsageStats - false --logger.level info " + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && $UV run streamlit run main.py --server.headless true --server.address + 0.0.0.0 --server.port 3000 --browser.gatherUsageStats false --logger.level + info plan: 8 replicas: 1 isPublic: true @@ -31,8 +34,8 @@ run: backend: steps: - name: start backend application - command: cd backend && uv run uvicorn app:app --port 3000 --host 0.0.0.0 - --workers 2 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn app:app --port 3000 --host 0.0.0.0 --workers 2 plan: 8 replicas: 1 isPublic: false @@ -44,8 +47,8 @@ run: api-docs: steps: - name: deploy docs - command: cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 - --workers 2 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 --workers 2 plan: 8 replicas: 1 isPublic: true diff --git a/ci.yml b/ci.yml index 2041757..831b84e 100644 --- a/ci.yml +++ b/ci.yml @@ -5,18 +5,21 @@ prepare: command: command -v uv >/dev/null 2>&1 || { curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="$HOME/app" sh && chmod +x $HOME/app/uv; } - name: install frontend environment - command: export PATH="$HOME/app:$PATH" && cd frontend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync --no-dev; } - name: install backend environment - command: export PATH="$HOME/app:$PATH" && cd backend && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python uv sync --no-dev; } + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && { [ ! -d ".venv" ] && UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV venv; UV_PYTHON_INSTALL_DIR=/home/user/app/.codesphere-internal/.uv-python-install UV_PYTHON_BIN_DIR=/home/user/app/.codesphere-internal/.uv-python-bin UV_CACHE_DIR=/home/user/app/.codesphere-internal/.uv UV_PYTHON_CACHE_DIR=/home/user/app/.codesphere-internal/.uv-python $UV sync --no-dev; } test: steps: [] run: frontend: steps: - name: start frontend application - command: "cd frontend && uv run streamlit run main.py --server.headless true - --server.address 0.0.0.0 --server.port 3000 --browser.gatherUsageStats - false --logger.level info " + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd frontend + && $UV run streamlit run main.py --server.headless true --server.address + 0.0.0.0 --server.port 3000 --browser.gatherUsageStats false --logger.level + info plan: 8 replicas: 1 isPublic: true @@ -31,8 +34,8 @@ run: backend: steps: - name: start backend application - command: cd backend && uv run uvicorn app:app --port 3000 --host - 0.0.0.0 --workers 2 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn app:app --port 3000 --host 0.0.0.0 --workers 2 plan: 8 replicas: 1 isPublic: false @@ -44,8 +47,8 @@ run: api-docs: steps: - name: deploy docs - command: cd backend && uv run uvicorn doc:app_docs --host 0.0.0.0 - --port 3000 --workers 2 + command: UV=$(command -v uv 2>/dev/null || echo $HOME/app/uv) && cd backend + && $UV run uvicorn doc:app_docs --host 0.0.0.0 --port 3000 --workers 2 plan: 8 replicas: 1 isPublic: true