| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- name: Run Unit Tests
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
- on:
- push:
- branches:
- - main
- paths-ignore:
- - '**/*.md'
- - 'frontend/**'
- - 'docs/**'
- - 'evaluation/**'
- pull_request:
- env:
- PERSIST_SANDBOX : "false"
- jobs:
- test-on-macos:
- name: Test on macOS
- runs-on: macos-13
- env:
- INSTALL_DOCKER: "1" # Set to '0' to skip Docker installation
- strategy:
- matrix:
- python-version: ["3.11"]
- steps:
- - uses: actions/checkout@v4
- - name: Install poetry via pipx
- run: pipx install poetry
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- cache: "poetry"
- - name: Install Python dependencies using Poetry
- run: poetry install
- - name: Install & Start Docker
- if: env.INSTALL_DOCKER == '1'
- run: |
- brew install colima docker
- colima start
- # For testcontainers to find the Colima socket
- # https://github.com/abiosoft/colima/blob/main/docs/FAQ.md#cannot-connect-to-the-docker-daemon-at-unixvarrundockersock-is-the-docker-daemon-running
- sudo ln -sf $HOME/.colima/default/docker.sock /var/run/docker.sock
- - name: Build Environment
- run: make build
- - name: Run Tests
- run: poetry run pytest --forked --cov=agenthub --cov=opendevin --cov-report=xml ./tests/unit -k "not test_sandbox"
- - name: Upload coverage to Codecov
- uses: codecov/codecov-action@v4
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- test-on-linux:
- name: Test on Linux
- runs-on: ubuntu-latest
- env:
- INSTALL_DOCKER: "0" # Set to '0' to skip Docker installation
- strategy:
- matrix:
- python-version: ["3.11"]
- steps:
- - uses: actions/checkout@v4
- - name: Install poetry via pipx
- run: pipx install poetry
- - name: Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: ${{ matrix.python-version }}
- cache: "poetry"
- - name: Install Python dependencies using Poetry
- run: poetry install --without evaluation
- - name: Build Environment
- run: make build
- - name: Run Tests
- run: poetry run pytest --forked --cov=agenthub --cov=opendevin --cov-report=xml ./tests/unit -k "not test_sandbox"
- - name: Upload coverage to Codecov
- uses: codecov/codecov-action@v4
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- test-for-sandbox:
- name: Test for Sandbox
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - name: Install poetry via pipx
- run: pipx install poetry
- - name: Set up Python
- uses: actions/setup-python@v5
- with:
- python-version: "3.11"
- cache: "poetry"
- - name: Install Python dependencies using Poetry
- run: poetry install
- - name: Build Environment
- run: make build
- - name: Run Integration Test for Sandbox
- run: |
- poetry run pytest --cov=agenthub --cov=opendevin --cov-report=xml -s ./tests/unit/test_sandbox.py
- - name: Upload coverage to Codecov
- uses: codecov/codecov-action@v4
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|