Merge pull request #1458 from TimothyZhang7/release/v_0_3_0 #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: Lint Python | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| cd core | |
| pip install -e . | |
| pip install -r requirements-dev.txt | |
| - name: Ruff lint | |
| run: | | |
| cd core && ruff check . | |
| cd tools && ruff check . | |
| - name: Ruff format | |
| run: | | |
| cd core && ruff format --check . | |
| cd tools && ruff format --check . | |
| test: | |
| name: Test Python Framework | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| cd core | |
| pip install -e . | |
| pip install -r requirements-dev.txt | |
| - name: Run tests | |
| run: | | |
| cd core | |
| pytest tests/ -v | |
| validate: | |
| name: Validate Agent Exports | |
| runs-on: ubuntu-latest | |
| needs: [lint, test] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Install dependencies | |
| run: | | |
| cd core | |
| pip install -e . | |
| pip install -r requirements-dev.txt | |
| - name: Validate exported agents | |
| run: | | |
| # Check that agent exports have valid structure | |
| if [ ! -d "exports" ]; then | |
| echo "No exports/ directory found, skipping validation" | |
| exit 0 | |
| fi | |
| shopt -s nullglob | |
| agent_dirs=(exports/*/) | |
| shopt -u nullglob | |
| if [ ${#agent_dirs[@]} -eq 0 ]; then | |
| echo "No agent directories in exports/, skipping validation" | |
| exit 0 | |
| fi | |
| validated=0 | |
| for agent_dir in "${agent_dirs[@]}"; do | |
| if [ -f "$agent_dir/agent.json" ]; then | |
| echo "Validating $agent_dir" | |
| python -c "import json; json.load(open('$agent_dir/agent.json'))" | |
| validated=$((validated + 1)) | |
| fi | |
| done | |
| if [ "$validated" -eq 0 ]; then | |
| echo "No agent.json files found in exports/, skipping validation" | |
| else | |
| echo "Validated $validated agent(s)" | |
| fi |