PROV-AGENT-LOOP and Codex Adapter Implementation #299
Workflow file for this run
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: LLM Tests | |
| on: [pull_request] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: [ "3.11", "3.12" ] | |
| env: | |
| MONGO_ENABLED: true | |
| LMDB_ENABLED: false | |
| OMP_NUM_THREADS: "1" | |
| MKL_NUM_THREADS: "1" | |
| timeout-minutes: 60 | |
| if: "!contains(github.event.head_commit.message, 'CI Bot')" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| # cache: "pip" | |
| - name: Show OS Info | |
| run: '[[ "$OSTYPE" == "linux-gnu"* ]] && { echo "OS Type: Linux"; (command -v lsb_release &> /dev/null && lsb_release -a) || cat /etc/os-release; uname -r; } || [[ "$OSTYPE" == "darwin"* ]] && { echo "OS Type: macOS"; sw_vers; uname -r; } || echo "Unsupported OS type: $OSTYPE"' | |
| - name: Start docker compose with redis | |
| run: make services-mongo | |
| - name: Upgrade pip | |
| run: | | |
| python -m pip install --upgrade pip | |
| python --version | |
| - name: Install dependencies | |
| run: pip install .[extras,ml_dev,dask,mongo] | |
| - name: Init LLM test settings | |
| run: | | |
| rm -f "${FLOWCEPT_SETTINGS_PATH:-$HOME/.flowcept/settings.yaml}" | |
| flowcept --init-settings --full --dask -y | |
| flowcept --config-profile full-online -y | |
| - name: Test LLM with Dask cluster | |
| env: | |
| DASK_DISTRIBUTED__LOGGING__DISTRIBUTED: critical | |
| run: | | |
| set -euo pipefail | |
| for attempt in 1 2; do | |
| echo "LLM Dask cluster run attempt=${attempt}" | |
| if timeout 1800 python examples/llm_complex/llm_main_example.py --start-dask-cluster; then | |
| break | |
| fi | |
| if [ "${attempt}" -eq 2 ]; then | |
| echo "LLM Dask cluster run failed after retries." | |
| exit 1 | |
| fi | |
| echo "Retrying after transient failure..." | |
| sleep 10 | |
| done | |
| - name: Cleanup orphan Dask processes | |
| if: always() | |
| run: | | |
| pkill -f "dask scheduler" || true | |
| pkill -f "dask worker" || true | |
| - name: Test LLM without Flowcept | |
| run: | | |
| pip list | |
| python examples/llm_complex/llm_main_example.py --with-flowcept false | |
| - name: Test LLM | |
| run: bash .github/workflows/run_examples.sh examples true llm_complex/llm_test_runner.py | |
| - name: Cleanup orphan Dask processes (post-llm) | |
| if: always() | |
| run: | | |
| pkill -f "dask scheduler" || true | |
| pkill -f "dask worker" || true | |
| - name: Shut down docker compose | |
| run: make services-stop-mongo | |
| - name: Clean up | |
| run: | | |
| make clean | |
| test -d /home/runner/runners/ && find /home/runner/runners/ -type f -name "*.log" -exec sh -c 'echo {}; >"{}"' \; || true | |
| docker image prune -a -f | |
| - name: List large files | |
| run: find . -type f -exec du -h {} + | sort -h |