Files
aitbc/scripts
aitbc1 2d2b261384
All checks were successful
API Endpoint Tests / test-api-endpoints (push) Successful in 29s
CLI Tests / test-cli (push) Successful in 1m20s
Documentation Validation / validate-docs (push) Successful in 12s
JavaScript SDK Tests / test-js-sdk (push) Successful in 21s
Integration Tests / test-service-integration (push) Successful in 44s
Package Tests / test-python-packages (map[name:aitbc-agent-sdk path:packages/py/aitbc-agent-sdk]) (push) Successful in 38s
Package Tests / test-python-packages (map[name:aitbc-core path:packages/py/aitbc-core]) (push) Successful in 19s
Package Tests / test-python-packages (map[name:aitbc-crypto path:packages/py/aitbc-crypto]) (push) Successful in 21s
Package Tests / test-python-packages (map[name:aitbc-sdk path:packages/py/aitbc-sdk]) (push) Successful in 24s
Package Tests / test-javascript-packages (map[name:aitbc-sdk-js path:packages/js/aitbc-sdk]) (push) Successful in 8s
Package Tests / test-javascript-packages (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 29s
Python Tests / test-python (push) Successful in 1m20s
Rust ZK Components Tests / test-rust-zk (push) Successful in 55s
Smart Contract Tests / test-solidity (map[name:aitbc-token path:packages/solidity/aitbc-token]) (push) Successful in 14s
Security Scanning / security-scan (push) Successful in 1m5s
Smart Contract Tests / test-solidity (map[name:zk-circuits path:apps/zk-circuits]) (push) Successful in 52s
Systemd Sync / sync-systemd (push) Successful in 4s
Smart Contract Tests / lint-solidity (push) Successful in 59s
refactor: full rewrite of all CI workflows for Gitea runner
TOTAL: 3524 → 924 lines (74% reduction)

Per-file changes:
- api-endpoint-tests.yml:    548 →  63 lines (-88%)
- package-tests.yml:        1014 → 149 lines (-85%)
- integration-tests.yml:     561 → 100 lines (-82%)
- python-tests.yml:          290 →  77 lines (-73%)
- smart-contract-tests.yml:  290 → 105 lines (-64%)
- systemd-sync.yml:          192 →  86 lines (-55%)
- cli-level1-tests.yml:      180 →  66 lines (-63%)
- security-scanning.yml:     137 →  72 lines (-47%)
- rust-zk-tests.yml:         112 →  69 lines (-38%)
- docs-validation.yml:       104 →  72 lines (-31%)
- js-sdk-tests.yml:           97 →  65 lines (-33%)

Fixes applied:
1. Concurrency groups: all 7 workflows shared 'ci-workflows' group
   (they cancelled each other). Now each has unique group.
2. Removed all actions/checkout@v4 usage (not available on Gitea runner)
   → replaced with git clone http://gitea.bubuit.net:3000/oib/aitbc.git
3. Removed all sudo usage (Debian root environment)
4. Fixed wrong ports: wallet 8002→8003, RPC 8545→8006
5. External workspaces: /opt/aitbc/*-workspace → /var/lib/aitbc-workspaces/
6. Extracted 274 echo'd Python lines → scripts/ci/test_api_endpoints.py
7. Removed dead CLI test code (tests were skipped entirely)
8. Moved aitbc.code-workspace out of workflows directory
9. Added --depth 1 to all git clones for speed
10. Added cleanup steps to all workflows

New files:
- scripts/ci/clone-repo.sh: reusable clone helper
- scripts/ci/test_api_endpoints.py: extracted API test script
2026-03-29 12:34:15 +02:00
..

AITBC Development Environment Scripts

This directory contains scripts for managing the AITBC development environment, including incus containers and systemd services.

📋 Available Scripts

🔧 start-aitbc-dev.sh

Starts incus containers and AITBC systemd services on localhost.

Features:

  • Starts incus containers: aitbc and aitbc1
  • Starts all local systemd services matching aitbc-*
  • Checks service health and port status
  • Tests health endpoints
  • Provides colored output and status reporting

Usage:

./scripts/start-aitbc-dev.sh

🛑 stop-aitbc-dev.sh

Stops incus containers and AITBC systemd services on localhost.

Features:

  • Stops incus containers: aitbc and aitbc1
  • Stops all local systemd services matching aitbc-*
  • Verifies services are stopped
  • Provides colored output and status reporting

Usage:

./scripts/stop-aitbc-dev.sh

🚀 start-aitbc-full.sh

Comprehensive startup script for the complete AITBC development environment.

Features:

  • Starts incus containers: aitbc and aitbc1
  • Starts services inside containers
  • Starts all local systemd services matching aitbc-*
  • Tests connectivity to container services
  • Provides detailed status reporting
  • Shows container IP addresses
  • Tests health endpoints

Services Started:

  • Local Services: All aitbc-* systemd services
  • Container Services:
    • aitbc-coordinator-api
    • aitbc-wallet-daemon
    • aitbc-blockchain-node

Usage:

./scripts/start-aitbc-full.sh

🎯 Prerequisites

Required Commands:

  • incus - Container management
  • systemctl - Systemd service management
  • curl - Health endpoint testing
  • netstat - Port checking

Required Containers:

The scripts expect these incus containers to exist:

  • aitbc
  • aitbc1

Required Services:

The scripts look for systemd services matching the pattern aitbc-*.

📊 Service Ports

Port Service Description
8001 Coordinator API Main API service
8002 Wallet Daemon Wallet management
8003 Blockchain RPC Blockchain node RPC
8000 Coordinator API (alt) Alternative API
8081 Blockchain Node 1 Blockchain instance
8082 Blockchain Node 2 Blockchain instance
8006 Coordinator API (dev) Development API

🔍 Health Endpoints

The scripts test these health endpoints:

  • http://localhost:8001/health - Coordinator API
  • http://localhost:8002/health - Wallet Daemon
  • http://localhost:8003/health - Blockchain RPC

📝 Output Examples

Success Output:

[INFO] Starting AITBC Development Environment...
[INFO] Starting incus containers...
[SUCCESS] Container aitbc started successfully
[SUCCESS] Container aitbc1 started successfully
[INFO] Starting AITBC systemd services on localhost...
[SUCCESS] Service aitbc-coordinator-api started successfully
[SUCCESS] Service aitbc-wallet-daemon started successfully
[INFO] Checking service status...
[SUCCESS] aitbc-coordinator-api: RUNNING
[SUCCESS] aitbc-wallet-daemon: RUNNING
[SUCCESS] AITBC Development Environment startup complete!

Service Status:

[INFO] Checking AITBC service ports...
[SUCCESS] Coordinator API (port 8001): RUNNING
[SUCCESS] Wallet Daemon (port 8002): RUNNING
[WARNING] Blockchain RPC (port 8003): NOT RUNNING

🛠️ Troubleshooting

Common Issues:

  1. Container not found:

    [ERROR] Container aitbc not found. Please create it first.
    

    Solution: Create the incus containers first:

    incus launch images:ubuntu/22.04 aitbc
    incus launch images:ubuntu/22.04 aitbc1
    
  2. Service not found:

    [WARNING] No AITBC services found on localhost
    

    Solution: Install AITBC services or check if they're named correctly.

  3. Port already in use:

    [WARNING] Service aitbc-coordinator-api is already running
    

    Solution: This is normal - the script detects already running services.

  4. Permission denied:

    [ERROR] Failed to start service aitbc-coordinator-api
    

    Solution: Run with sudo or check user permissions.

Debug Commands:

# Check all AITBC services
systemctl list-units | grep aitbc-

# Check container status
incus list

# View service logs
journalctl -f -u aitbc-coordinator-api

# View container logs
incus exec aitbc -- journalctl -f -u aitbc-coordinator-api

# Check port usage
netstat -tlnp | grep :800

🔄 Workflow

Development Setup:

  1. Create incus containers (if not exists)
  2. Install AITBC services in containers
  3. Install AITBC systemd services locally
  4. Run ./scripts/start-aitbc-full.sh

Daily Development:

  1. ./scripts/start-aitbc-full.sh - Start everything
  2. Work on AITBC development
  3. ./scripts/stop-aitbc-dev.sh - Stop when done

Testing:

  1. Start services with scripts
  2. Test health endpoints
  3. Check logs for issues
  4. Stop services when finished

📚 Additional Information

  • Container IPs: Scripts show container IP addresses for direct access
  • Health Checks: Automatic health endpoint testing
  • Service Status: Real-time status reporting
  • Error Handling: Graceful error handling with informative messages

🎯 Best Practices

  1. Use the full script for complete environment setup
  2. Check the output for any warnings or errors
  3. Monitor logs when troubleshooting issues
  4. Stop services when not in use to conserve resources
  5. Run scripts from the project root for proper path resolution