ci: standardize Python venv setup across all workflows using setup-python-venv.sh script
Some checks failed
API Endpoint Tests / test-api-endpoints (push) Successful in 9s
CLI Tests / test-cli (push) Failing after 6m49s
Integration Tests / test-service-integration (push) Successful in 2m22s
Package Tests / Python package - aitbc-agent-sdk (push) Failing after 26s
Package Tests / Python package - aitbc-core (push) Failing after 10s
Package Tests / Python package - aitbc-crypto (push) Failing after 5s
Package Tests / Python package - aitbc-sdk (push) Failing after 2s
Package Tests / JavaScript package - aitbc-sdk-js (push) Successful in 7s
Package Tests / JavaScript package - aitbc-token (push) Successful in 16s
Production Tests / Production Integration Tests (push) Failing after 1m21s
Python Tests / test-python (push) Has been cancelled
Security Scanning / security-scan (push) Failing after 13s
Staking Tests / test-staking-service (push) Failing after 1m13s
Staking Tests / test-staking-integration (push) Has been skipped
Staking Tests / test-staking-contract (push) Has been skipped
Staking Tests / run-staking-test-runner (push) Has been skipped

Replaced manual venv creation and pip install commands with calls to scripts/ci/setup-python-venv.sh across all CI workflows. The script provides consistent venv setup with configurable options for requirements installation, copy mode, and extra packages.

- Changed from manual `python3 -m venv` + `pip install` to setup-python-venv.sh in all workflows
- Added --skip-requirements flag where workflows don't need requirements
This commit is contained in:
aitbc
2026-04-19 21:05:26 +02:00
parent 59ae930411
commit a2f84648ab
9 changed files with 197 additions and 55 deletions

View File

@@ -34,8 +34,11 @@ jobs:
- name: Setup test environment
run: |
cd /var/lib/aitbc-workspaces/api-tests/repo
python3 -m venv venv
venv/bin/pip install -q requests pytest httpx
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv" \
--skip-requirements \
--extra-packages "requests pytest httpx"
# Ensure standard directories exist
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc

View File

@@ -36,12 +36,10 @@ jobs:
# Ensure standard directories exist
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc
python3 -m venv venv
source venv/bin/activate
pip install -q --upgrade pip setuptools wheel
pip install -q -r requirements.txt
pip install -q pytest
echo "✅ Python $(python3 --version) environment ready"
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv"
echo "✅ Python environment ready"
- name: Verify CLI imports
run: |

View File

@@ -107,8 +107,11 @@ jobs:
- name: Setup test environment
run: |
cd /var/lib/aitbc-workspaces/integration-tests/repo
python3 -m venv venv
venv/bin/pip install -q requests pytest httpx pytest-asyncio pytest-timeout click locust
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv" \
--skip-requirements \
--extra-packages "requests pytest httpx pytest-asyncio pytest-timeout click locust"
# Ensure standard directories exist
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc

View File

@@ -53,10 +53,12 @@ jobs:
# Ensure standard directories exist
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc
# Create venv
python3 -m venv venv
bash "$WORKSPACE/repo/scripts/ci/setup-python-venv.sh" \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv" \
--mode copy \
--extra-packages "pytest mypy black"
source venv/bin/activate
pip install -q --upgrade pip setuptools wheel
if [[ "${{ matrix.package.name }}" == "aitbc-sdk" ]]; then
pip install -q -e "$WORKSPACE/repo/packages/py/aitbc-crypto"
@@ -69,7 +71,6 @@ jobs:
if [[ -f "requirements.txt" ]]; then
pip install -q -r requirements.txt
fi
pip install -q pytest mypy black
# Linting
echo "=== Linting ==="
@@ -94,9 +95,12 @@ jobs:
cd "$WORKSPACE/repo/${{ matrix.package.path }}"
if [[ -f "pyproject.toml" ]]; then
python3 -m venv venv
source venv/bin/activate
pip install -q build
bash "$WORKSPACE/repo/scripts/ci/setup-python-venv.sh" \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv-build" \
--skip-requirements \
--extra-packages "build"
source venv-build/bin/activate
python -m build
echo "✅ Package built"
fi

View File

@@ -33,21 +33,11 @@ jobs:
- name: Setup test environment
run: |
cd /var/lib/aitbc-workspaces/production-tests/repo
python3 -m venv venv
venv/bin/pip install -q \
pytest \
pytest-asyncio \
pytest-timeout \
requests \
pyjwt \
fastapi \
uvicorn[standard] \
redis \
bcrypt \
websockets \
numpy \
psutil \
prometheus-client
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv" \
--skip-requirements \
--extra-packages "pytest pytest-asyncio pytest-timeout requests pyjwt fastapi uvicorn[standard] redis bcrypt websockets numpy psutil prometheus-client"
# Ensure standard directories exist
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc

View File

@@ -39,12 +39,12 @@ jobs:
# Ensure standard directories exist
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc
python3 -m venv venv
source venv/bin/activate
pip install -q --upgrade pip setuptools wheel
pip install -q -r requirements.txt
pip install -q pytest pytest-asyncio pytest-cov pytest-mock pytest-timeout click pynacl locust
echo "✅ Python $(python3 --version) environment ready"
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv" \
--mode copy \
--extra-packages "pytest-cov pytest-mock pytest-timeout locust"
echo "✅ Python environment ready"
- name: Run linting
run: |

View File

@@ -42,9 +42,11 @@ jobs:
# Ensure standard directories exist
mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc
python3 -m venv venv
source venv/bin/activate
pip install -q bandit pip-audit
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv" \
--skip-requirements \
--extra-packages "bandit pip-audit"
echo "✅ Security tools installed"
- name: Python dependency audit

View File

@@ -36,11 +36,9 @@ jobs:
run: |
cd /var/lib/aitbc-workspaces/staking-tests/repo
python3 -m venv venv
source venv/bin/activate
pip install -q --upgrade pip setuptools wheel
pip install -q -r requirements.txt
pip install -q pytest pytest-asyncio
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv"
echo "✅ Python environment ready"
- name: Run staking service tests
@@ -84,11 +82,9 @@ jobs:
run: |
cd /var/lib/aitbc-workspaces/staking-integration/repo
python3 -m venv venv
source venv/bin/activate
pip install -q --upgrade pip setuptools wheel
pip install -q -r requirements.txt
pip install -q pytest pytest-asyncio
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv"
echo "✅ Python environment ready"
- name: Run staking integration tests
@@ -157,10 +153,9 @@ jobs:
run: |
cd /var/lib/aitbc-workspaces/staking-runner/repo
python3 -m venv venv
source venv/bin/activate
pip install -q --upgrade pip setuptools wheel
pip install -q -r requirements.txt
bash scripts/ci/setup-python-venv.sh \
--repo-dir "$PWD" \
--venv-dir "$PWD/venv"
echo "✅ Python environment ready"
- name: Run staking test runner