Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .env.sample
Original file line number Diff line number Diff line change
@@ -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
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -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`
Expand Down
50 changes: 24 additions & 26 deletions ci.Qa.yml
Original file line number Diff line number Diff line change
@@ -1,56 +1,54 @@
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
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: . ./env && cd frontend && { [ ! -d ".venv" ] && uv venv; 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: . ./env && cd backend && { [ ! -d ".venv" ] && uv venv; 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: ". ./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: 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
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
command: . ./env && 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
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
command: . ./env && 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
Expand Down
62 changes: 30 additions & 32 deletions ci.dev.yml
Original file line number Diff line number Diff line change
@@ -1,66 +1,64 @@
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
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: . ./env && cd frontend && { [ ! -d ".venv" ] && uv venv; 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: . ./env && cd backend && { [ ! -d ".venv" ] && uv venv; 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: . ./env && 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: ". ./env && 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: '. ./env && 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: '. ./env && 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: . ./env && 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
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
command: . ./env && 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
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
command: . ./env && 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
Expand Down
46 changes: 24 additions & 22 deletions ci.prod.yml
Original file line number Diff line number Diff line change
@@ -1,52 +1,54 @@
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
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 venv; 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: cd backend && { [ ! -d ".venv" ] && uv venv; 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
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
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
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
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
Expand Down
Loading