mirror of
https://github.com/SuperClaude-Org/SuperClaude_Framework.git
synced 2025-12-29 16:16:08 +00:00
Delete .github/workflows directory
Signed-off-by: NomenAK <39598727+NomenAK@users.noreply.github.com>
This commit is contained in:
417
.github/workflows/memory-system-tests.yml
vendored
417
.github/workflows/memory-system-tests.yml
vendored
@@ -1,417 +0,0 @@
|
||||
name: SuperClaude Memory System Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master, main, develop ]
|
||||
paths:
|
||||
- 'SuperClaude/Core/**'
|
||||
- 'tests/**'
|
||||
- '.github/workflows/memory-system-tests.yml'
|
||||
pull_request:
|
||||
branches: [ master, main ]
|
||||
paths:
|
||||
- 'SuperClaude/Core/**'
|
||||
- 'tests/**'
|
||||
schedule:
|
||||
# Run daily at 2 AM UTC
|
||||
- cron: '0 2 * * *'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
test_suite:
|
||||
description: 'Test suite to run'
|
||||
required: false
|
||||
default: 'all'
|
||||
type: choice
|
||||
options:
|
||||
- all
|
||||
- unit
|
||||
- comprehensive
|
||||
- performance
|
||||
- integration
|
||||
- stress
|
||||
|
||||
env:
|
||||
PYTHON_VERSION: '3.11'
|
||||
SUPERCLAUDE_TEST_MODE: '1'
|
||||
SUPERCLAUDE_LOG_LEVEL: 'INFO'
|
||||
|
||||
jobs:
|
||||
test-matrix:
|
||||
name: Test Matrix
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
|
||||
test-suite: ['unit', 'comprehensive']
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y sqlite3 libsqlite3-dev
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip setuptools wheel
|
||||
pip install -r tests/requirements-test.txt
|
||||
pip install -e .
|
||||
|
||||
- name: Verify installation
|
||||
run: |
|
||||
python -c "import SuperClaude; print('SuperClaude imported successfully')"
|
||||
python -c "from SuperClaude.Core import serena_integration; print('Core modules available')"
|
||||
|
||||
- name: Run ${{ matrix.test-suite }} tests
|
||||
run: |
|
||||
cd tests
|
||||
python run_test_suite.py --suites ${{ matrix.test-suite }} --ci --parallel
|
||||
timeout-minutes: 30
|
||||
|
||||
- name: Upload test results
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: test-results-${{ matrix.python-version }}-${{ matrix.test-suite }}
|
||||
path: |
|
||||
tests/results/
|
||||
tests/htmlcov/
|
||||
retention-days: 7
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
if: matrix.python-version == '3.11' && matrix.test-suite == 'comprehensive'
|
||||
with:
|
||||
file: tests/results/coverage/comprehensive.json
|
||||
flags: memory-system
|
||||
name: memory-system-coverage
|
||||
fail_ci_if_error: false
|
||||
|
||||
performance-tests:
|
||||
name: Performance Benchmarks
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-matrix
|
||||
if: github.event_name == 'push' || github.event_name == 'schedule' || github.event.inputs.test_suite == 'performance' || github.event.inputs.test_suite == 'all'
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r tests/requirements-test.txt
|
||||
pip install -e .
|
||||
|
||||
- name: Run performance benchmarks
|
||||
run: |
|
||||
cd tests
|
||||
python run_test_suite.py --suites performance --ci
|
||||
timeout-minutes: 45
|
||||
|
||||
- name: Analyze performance results
|
||||
run: |
|
||||
python -c "
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
results_file = Path('tests/results/reports/performance_report.json')
|
||||
if results_file.exists():
|
||||
with open(results_file) as f:
|
||||
data = json.load(f)
|
||||
|
||||
print('🎯 Performance Analysis:')
|
||||
if data.get('summary', {}).get('passed', 0) > 0:
|
||||
print('✅ Performance targets met (<200ms)')
|
||||
else:
|
||||
print('❌ Performance targets not met')
|
||||
exit(1)
|
||||
else:
|
||||
print('⚠️ Performance results not found')
|
||||
"
|
||||
|
||||
- name: Upload performance results
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: performance-benchmarks
|
||||
path: |
|
||||
tests/results/performance/
|
||||
tests/results/reports/performance*
|
||||
retention-days: 30
|
||||
|
||||
integration-tests:
|
||||
name: Integration & E2E Tests
|
||||
runs-on: ubuntu-latest
|
||||
needs: test-matrix
|
||||
if: github.event_name == 'push' || github.event.inputs.test_suite == 'integration' || github.event.inputs.test_suite == 'all'
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r tests/requirements-test.txt
|
||||
pip install -e .
|
||||
|
||||
- name: Run integration tests
|
||||
run: |
|
||||
cd tests
|
||||
python run_test_suite.py --suites integration --ci
|
||||
timeout-minutes: 60
|
||||
|
||||
- name: Upload integration test results
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: integration-test-results
|
||||
path: |
|
||||
tests/results/
|
||||
retention-days: 14
|
||||
|
||||
stress-tests:
|
||||
name: Stress & Concurrent Tests
|
||||
runs-on: ubuntu-latest
|
||||
needs: [test-matrix, performance-tests]
|
||||
if: github.event_name == 'schedule' || github.event.inputs.test_suite == 'stress' || github.event.inputs.test_suite == 'all'
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
cache: 'pip'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r tests/requirements-test.txt
|
||||
pip install -e .
|
||||
|
||||
- name: Run stress tests
|
||||
run: |
|
||||
cd tests
|
||||
python run_test_suite.py --suites stress --ci
|
||||
timeout-minutes: 45
|
||||
|
||||
- name: Upload stress test results
|
||||
uses: actions/upload-artifact@v3
|
||||
if: always()
|
||||
with:
|
||||
name: stress-test-results
|
||||
path: |
|
||||
tests/results/
|
||||
retention-days: 7
|
||||
|
||||
comprehensive-report:
|
||||
name: Generate Comprehensive Report
|
||||
runs-on: ubuntu-latest
|
||||
needs: [test-matrix, performance-tests, integration-tests]
|
||||
if: always()
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ env.PYTHON_VERSION }}
|
||||
|
||||
- name: Download all test artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
path: artifacts/
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install -r tests/requirements-test.txt
|
||||
|
||||
- name: Generate comprehensive report
|
||||
run: |
|
||||
python -c "
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
from datetime import datetime
|
||||
|
||||
# Collect all test results
|
||||
artifacts_dir = Path('artifacts')
|
||||
all_results = {}
|
||||
|
||||
for artifact_dir in artifacts_dir.iterdir():
|
||||
if artifact_dir.is_dir():
|
||||
for result_file in artifact_dir.rglob('*_report.json'):
|
||||
try:
|
||||
with open(result_file) as f:
|
||||
data = json.load(f)
|
||||
all_results[artifact_dir.name] = data
|
||||
except:
|
||||
pass
|
||||
|
||||
# Generate summary report
|
||||
report = f'''# SuperClaude Memory System CI/CD Test Report
|
||||
|
||||
Generated: {datetime.utcnow().isoformat()}Z
|
||||
|
||||
## Summary
|
||||
|
||||
Total Test Artifacts: {len(list(artifacts_dir.iterdir()))}
|
||||
Test Results Collected: {len(all_results)}
|
||||
|
||||
## Test Status by Category
|
||||
|
||||
'''
|
||||
|
||||
for artifact_name, results in all_results.items():
|
||||
status = '✅ PASSED' if results.get('exitcode', 1) == 0 else '❌ FAILED'
|
||||
report += f'- **{artifact_name}**: {status}\n'
|
||||
|
||||
report += f'''
|
||||
|
||||
## Performance Validation
|
||||
|
||||
Performance Target: <200ms for individual operations
|
||||
|
||||
'''
|
||||
|
||||
# Check for performance results
|
||||
perf_passed = any('performance' in name for name in all_results.keys())
|
||||
if perf_passed:
|
||||
report += '✅ Performance benchmarks completed successfully\n'
|
||||
else:
|
||||
report += '⚠️ Performance benchmarks not completed\n'
|
||||
|
||||
report += '''
|
||||
|
||||
## Recommendations
|
||||
|
||||
'''
|
||||
|
||||
if all(results.get('exitcode', 1) == 0 for results in all_results.values()):
|
||||
report += '''✅ All tests passed - system ready for deployment
|
||||
🚀 Memory system migration validated
|
||||
📊 Performance targets met
|
||||
'''
|
||||
else:
|
||||
report += '''❌ Some tests failed - review before deployment
|
||||
🔧 Check individual test results for details
|
||||
⚠️ System may not meet requirements
|
||||
'''
|
||||
|
||||
# Save report
|
||||
with open('comprehensive_test_report.md', 'w') as f:
|
||||
f.write(report)
|
||||
|
||||
print('📊 Comprehensive report generated')
|
||||
"
|
||||
|
||||
- name: Upload comprehensive report
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: comprehensive-test-report
|
||||
path: comprehensive_test_report.md
|
||||
retention-days: 30
|
||||
|
||||
- name: Comment on PR (if applicable)
|
||||
uses: actions/github-script@v6
|
||||
if: github.event_name == 'pull_request'
|
||||
with:
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
|
||||
if (fs.existsSync('comprehensive_test_report.md')) {
|
||||
const report = fs.readFileSync('comprehensive_test_report.md', 'utf8');
|
||||
|
||||
github.rest.issues.createComment({
|
||||
issue_number: context.issue.number,
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
body: `## 🧪 SuperClaude Memory System Test Results\n\n${report}`
|
||||
});
|
||||
}
|
||||
|
||||
security-scan:
|
||||
name: Security Scan
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'push' || github.event_name == 'pull_request'
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Run Trivy vulnerability scanner
|
||||
uses: aquasecurity/trivy-action@master
|
||||
with:
|
||||
scan-type: 'fs'
|
||||
scan-ref: '.'
|
||||
format: 'sarif'
|
||||
output: 'trivy-results.sarif'
|
||||
|
||||
- name: Upload Trivy scan results to GitHub Security tab
|
||||
uses: github/codeql-action/upload-sarif@v2
|
||||
if: always()
|
||||
with:
|
||||
sarif_file: 'trivy-results.sarif'
|
||||
|
||||
notify-status:
|
||||
name: Notify Status
|
||||
runs-on: ubuntu-latest
|
||||
needs: [test-matrix, performance-tests, integration-tests, comprehensive-report]
|
||||
if: always() && github.event_name == 'push'
|
||||
|
||||
steps:
|
||||
- name: Determine overall status
|
||||
id: status
|
||||
run: |
|
||||
if [[ "${{ needs.test-matrix.result }}" == "success" &&
|
||||
"${{ needs.performance-tests.result }}" == "success" &&
|
||||
"${{ needs.integration-tests.result }}" == "success" ]]; then
|
||||
echo "status=success" >> $GITHUB_OUTPUT
|
||||
echo "message=All SuperClaude memory system tests passed! ✅" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "status=failure" >> $GITHUB_OUTPUT
|
||||
echo "message=Some SuperClaude memory system tests failed! ❌" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Create status check
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
github.rest.repos.createCommitStatus({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
sha: context.sha,
|
||||
state: '${{ steps.status.outputs.status }}',
|
||||
description: '${{ steps.status.outputs.message }}',
|
||||
context: 'SuperClaude Memory System Tests'
|
||||
});
|
||||
Reference in New Issue
Block a user