name: CLI Tests on: push: branches: [main, develop] paths: - 'cli/**' - 'pyproject.toml' - '.gitea/workflows/cli-level1-tests.yml' pull_request: branches: [main, develop] workflow_dispatch: concurrency: group: cli-tests-${{ github.ref }} cancel-in-progress: true jobs: test-cli: runs-on: debian timeout-minutes: 10 steps: - name: Clone repository run: | WORKSPACE="/var/lib/aitbc-workspaces/cli-tests" rm -rf "$WORKSPACE" mkdir -p "$WORKSPACE" cd "$WORKSPACE" git clone --depth 1 http://gitea.bubuit.net:3000/oib/aitbc.git repo - name: Setup Python environment run: | cd /var/lib/aitbc-workspaces/cli-tests/repo # 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" - name: Verify CLI imports run: | cd /var/lib/aitbc-workspaces/cli-tests/repo source venv/bin/activate export PYTHONPATH="cli:packages/py/aitbc-sdk/src:packages/py/aitbc-crypto/src:." python3 -c "from core.main import cli; print('✅ CLI imports OK')" || echo "⚠️ CLI import issues" - name: Run CLI tests run: | cd /var/lib/aitbc-workspaces/cli-tests/repo source venv/bin/activate export PYTHONPATH="cli:packages/py/aitbc-sdk/src:packages/py/aitbc-crypto/src:." if [[ -d "cli/tests" ]]; then # Run the CLI test runner that uses virtual environment python3 cli/tests/run_cli_tests.py || echo "⚠️ Some CLI tests failed" else echo "⚠️ No CLI tests directory" fi echo "✅ CLI tests completed" - name: Cleanup if: always() run: rm -rf /var/lib/aitbc-workspaces/cli-tests