mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-02-13 00:05:02 -05:00
- Add 'playwright install chromium' step to Forge CI workflow - Auto-detect default model from available API keys (ANTHROPIC_API_KEY, OPENAI_API_KEY, GROQ_API_KEY) in direct_benchmark harness - Prefer Claude > OpenAI > Groq, fallback to OpenAI if no keys found
97 lines
2.8 KiB
YAML
97 lines
2.8 KiB
YAML
name: Classic - Forge CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, dev, ci-test* ]
|
|
paths:
|
|
- '.github/workflows/classic-forge-ci.yml'
|
|
- 'classic/forge/**'
|
|
pull_request:
|
|
branches: [ master, dev, release-* ]
|
|
paths:
|
|
- '.github/workflows/classic-forge-ci.yml'
|
|
- 'classic/forge/**'
|
|
|
|
concurrency:
|
|
group: ${{ format('forge-ci-{0}', github.head_ref && format('{0}-{1}', github.event_name, github.event.pull_request.number) || github.sha) }}
|
|
cancel-in-progress: ${{ startsWith(github.event_name, 'pull_request') }}
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash
|
|
working-directory: classic
|
|
|
|
jobs:
|
|
test:
|
|
permissions:
|
|
contents: read
|
|
timeout-minutes: 30
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Start MinIO service
|
|
working-directory: '.'
|
|
run: |
|
|
docker pull minio/minio:edge-cicd
|
|
docker run -d -p 9000:9000 minio/minio:edge-cicd
|
|
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python 3.12
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Set up Python dependency cache
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: ~/.cache/pypoetry
|
|
key: poetry-${{ runner.os }}-${{ hashFiles('classic/poetry.lock') }}
|
|
|
|
- name: Install Poetry
|
|
run: curl -sSL https://install.python-poetry.org | python3 -
|
|
|
|
- name: Install Python dependencies
|
|
run: poetry install
|
|
|
|
- name: Install Playwright browsers
|
|
run: poetry run playwright install chromium
|
|
|
|
- name: Run pytest with coverage
|
|
run: |
|
|
poetry run pytest -vv \
|
|
--cov=forge --cov-branch --cov-report term-missing --cov-report xml \
|
|
--durations=10 \
|
|
--junitxml=junit.xml -o junit_family=legacy \
|
|
forge/forge forge/tests
|
|
env:
|
|
CI: true
|
|
PLAIN_OUTPUT: True
|
|
# API keys - tests that need these will skip if not available
|
|
# Secrets are not available to fork PRs (GitHub security feature)
|
|
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
|
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
|
|
S3_ENDPOINT_URL: http://127.0.0.1:9000
|
|
AWS_ACCESS_KEY_ID: minioadmin
|
|
AWS_SECRET_ACCESS_KEY: minioadmin
|
|
|
|
- name: Upload test results to Codecov
|
|
if: ${{ !cancelled() }} # Run even if tests fail
|
|
uses: codecov/test-results-action@v1
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
- name: Upload coverage reports to Codecov
|
|
uses: codecov/codecov-action@v5
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
flags: forge
|
|
|
|
- name: Upload logs to artifact
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-logs
|
|
path: classic/logs/
|