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
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user