| 1 |
|
| 2 | name: Pytest
|
| 3 |
|
| 4 | env:
|
| 5 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
| 6 |
|
| 7 | on:
|
| 8 | push:
|
| 9 | branches:
|
| 10 | - main
|
| 11 | - v2.0
|
| 12 | paths-ignore:
|
| 13 | - 'docs/**'
|
| 14 | - 'README.md'
|
| 15 | - 'mkdocs.yml'
|
| 16 | - '.cursor/**'
|
| 17 | - '.github/workflows/build-docs.yaml'
|
| 18 | - '.github/workflows/release.yaml'
|
| 19 | - '.github/workflows/pylint.yaml'
|
| 20 | pull_request:
|
| 21 | branches:
|
| 22 | - main
|
| 23 | - v2.0
|
| 24 | paths-ignore:
|
| 25 | - 'docs/**'
|
| 26 | - 'README.md'
|
| 27 | - 'mkdocs.yml'
|
| 28 | - '.cursor/**'
|
| 29 | - '.github/workflows/build-docs.yaml'
|
| 30 | - '.github/workflows/release.yaml'
|
| 31 | - '.github/workflows/pylint.yaml'
|
| 32 |
|
| 33 | jobs:
|
| 34 | test:
|
| 35 | runs-on: ubuntu-latest
|
| 36 | defaults:
|
| 37 | run:
|
| 38 | shell: bash -l {0}
|
| 39 | steps:
|
| 40 | - name: Checkout code
|
| 41 | uses: actions/checkout@v6
|
| 42 | - uses: actions/setup-python@v6
|
| 43 | with:
|
| 44 | python-version: '3.11'
|
| 45 | - name: Update apt package list
|
| 46 | run: sudo apt-get update
|
| 47 | - name: Install podman
|
| 48 | run: sudo apt-get install -y podman
|
| 49 | - name: Install bubblewrap
|
| 50 | run: |
|
| 51 | sudo apt-get install -y bubblewrap
|
| 52 | sudo chmod u+s $(which bwrap) # ensure we can set uid permissions
|
| 53 | - name: Install singularity/apptainer
|
| 54 | run: |
|
| 55 | sudo apt-get install -y wget
|
| 56 | cd /tmp
|
| 57 | wget https://github.com/apptainer/apptainer/releases/download/v1.3.4/apptainer_1.3.4_amd64.deb
|
| 58 | sudo dpkg -i apptainer_1.3.4_amd64.deb || sudo apt-get install -f -y
|
| 59 | # Create singularity symlink for compatibility
|
| 60 | sudo ln -sf /usr/bin/apptainer /usr/bin/singularity
|
| 61 | - name: Install uv
|
| 62 | run: |
|
| 63 | curl -LsSf https://astral.sh/uv/install.sh | sh
|
| 64 | - name: Install dependencies
|
| 65 | run: |
|
| 66 | uv pip install --python ${Python_ROOT_DIR} -e '.[full]'
|
| 67 | - name: Configure mini-swe-agent
|
| 68 | run: |
|
| 69 | mini-extra config set MSWEA_CONFIGURED 'true'
|
| 70 | mini-extra config set OPENAI_API_KEY '${{ secrets.OPENAI_API_KEY }}'
|
| 71 | mini-extra config set OPENROUTER_API_KEY '${{ secrets.OPENROUTER_API_KEY }}'
|
| 72 | # mini-extra config set PORTKEY_API_KEY '${{ secrets.PORTKEY_API_KEY }}'
|
| 73 | mini-extra config set REQUESTY_API_KEY '${{ secrets.REQUESTY_API_KEY }}'
|
| 74 | - name: Run pytest
|
| 75 | run: pytest -v --cov --cov-branch --cov-report=xml -n auto --run-fire
|
| 76 | - name: Upload coverage reports to Codecov
|
| 77 | uses: codecov/codecov-action@v5
|
| 78 | with:
|
| 79 | token: ${{ secrets.CODECOV_TOKEN }}
|
| 80 | slug: SWE-agent/mini-swe-agent
|