feat: implement external workspace strategy for CI/CD
Some checks failed
package-tests / test-python-packages (map[name:aitbc-agent-sdk path:packages/py/aitbc-agent-sdk python_version:3.13]) (push) Successful in 7s
package-tests / test-python-packages (map[name:aitbc-cli path:. python_version:3.13]) (push) Successful in 4s
package-tests / test-python-packages (map[name:aitbc-core path:packages/py/aitbc-core python_version:3.13]) (push) Successful in 7s
package-tests / test-python-packages (map[name:aitbc-crypto path:packages/py/aitbc-crypto python_version:3.13]) (push) Successful in 8s
package-tests / test-python-packages (map[name:aitbc-sdk path:packages/py/aitbc-sdk python_version:3.13]) (push) Successful in 9s
package-tests / test-javascript-packages (map[name:aitbc-sdk node_version:24 path:packages/js/aitbc-sdk]) (push) Successful in 9s
security-scanning / audit (push) Failing after 1s
package-tests / cross-language-compatibility (push) Successful in 2s
package-tests / package-integration-tests (push) Successful in 1s
Documentation Validation / validate-docs (push) Successful in 6m7s

- Create workspace management documentation (WORKSPACE_STRATEGY.md)
- Add workspace manager script (scripts/workspace-manager.sh)
- Update package-tests.yml to use external workspaces
- Move workspaces from /opt/aitbc/* to /var/lib/aitbc-workspaces/*
- Implement cleaner CI/CD with isolated workspaces

Benefits:
- Clean repository status (no workspace directories in git)
- Better isolation between test environments
- Industry standard CI/CD practices
- Easier cleanup and resource management
- Parallel test execution capability

Workspace Structure:
- /var/lib/aitbc-workspaces/python-packages/
- /var/lib/aitbc-workspaces/javascript-packages/
- /var/lib/aitbc-workspaces/security-tests/
- /var/lib/aitbc-workspaces/compatibility-tests/

CI Improvements:
- External workspace creation and cleanup
- Standardized workspace management
- Better error handling and recovery
- Cleaner repository history
This commit is contained in:
aitbc1
2026-03-29 12:15:00 +02:00
parent e6182bf033
commit 3a58287b07
3 changed files with 392 additions and 29 deletions

View File

@@ -107,24 +107,15 @@ jobs:
echo "Cloning repository..."
# Ensure we're in the workspace directory
cd "$WORKSPACE_DIR" 2>/dev/null || cd /opt/aitbc/python-packages-workspace 2>/dev/null || {
echo "❌ Cannot access workspace, trying to recover..."
cd / || exit 1
mkdir -p /opt/aitbc/python-packages-workspace
cd /opt/aitbc/python-packages-workspace
}
# Use external workspace strategy
WORKSPACE_BASE="/var/lib/aitbc-workspaces/python-packages"
rm -rf "$WORKSPACE_BASE" 2>/dev/null || true
mkdir -p "$WORKSPACE_BASE"
cd "$WORKSPACE_BASE"
# Set git configuration and check Git status
echo "Git configuration and status:"
git --version
git config --global http.sslVerify false
git config --global http.postBuffer 1048576000
# Clone with multiple fallback strategies
REPO_URL="http://10.0.3.107:3000/oib/aitbc.git"
# Clean any existing repo directory first
rm -rf repo
# Clone repository
git clone http://10.0.3.107:3000/oib/aitbc.git repo
cd repo
# Check filesystem space and permissions
echo "Filesystem check:"
@@ -723,14 +714,10 @@ jobs:
# Clean and create isolated workspace
cd / || true
rm -rf /opt/aitbc/javascript-packages-workspace 2>/dev/null || true
if [[ -d "/opt/aitbc/javascript-packages-workspace" ]]; then
find /opt/aitbc/javascript-packages-workspace -type f -delete 2>/dev/null || true
find /opt/aitbc/javascript-packages-workspace -type d -delete 2>/dev/null || true
rm -rf /opt/aitbc/javascript-packages-workspace 2>/dev/null || true
fi
mkdir -p /opt/aitbc/javascript-packages-workspace
cd /opt/aitbc/javascript-packages-workspace
WORKSPACE_BASE="/var/lib/aitbc-workspaces/javascript-packages"
rm -rf "$WORKSPACE_BASE" 2>/dev/null || true
mkdir -p "$WORKSPACE_BASE"
cd "$WORKSPACE_BASE"
# Ensure no git lock files exist
find . -name "*.lock" -delete 2>/dev/null || true
@@ -954,10 +941,11 @@ jobs:
- name: Setup workspace
run: |
echo "=== PACKAGE INTEGRATION TESTS ==="
cd / || true
rm -rf /opt/aitbc/integration-workspace
mkdir -p /opt/aitbc/integration-workspace
cd /opt/aitbc/integration-workspace
# Use external workspace for security tests
WORKSPACE_BASE="/var/lib/aitbc-workspaces/security-tests"
rm -rf "$WORKSPACE_BASE" 2>/dev/null || true
mkdir -p "$WORKSPACE_BASE"
cd "$WORKSPACE_BASE"
# Ensure no git lock files exist
find . -name "*.lock" -delete 2>/dev/null || true