Spaces:
Running
Running
name: Unit Tests | |
on: | |
pull_request_target: | |
push: | |
branches: | |
- 'main' | |
- 'dev' | |
- '*-release' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# python-version: ['3.9', '3.10', '3.11'] | |
python-version: ['3.9'] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -e .[test] | |
npm install -g @mermaid-js/mermaid-cli | |
playwright install --with-deps | |
- name: Test with pytest | |
run: | | |
export ALLOW_OPENAI_API_CALL=0 | |
mkdir -p ~/.metagpt && cp tests/config2.yaml ~/.metagpt/config2.yaml | |
pytest | tee unittest.txt | |
- name: Show coverage report | |
run: | | |
coverage report -m | |
- name: Show failed tests and overall summary | |
run: | | |
grep -E "FAILED tests|ERROR tests|[0-9]+ passed," unittest.txt | |
failed_count=$(grep -E "FAILED tests|ERROR tests" unittest.txt | wc -l | tr -d '[:space:]') | |
if [[ $failed_count -gt 0 ]]; then | |
echo "$failed_count failed lines found! Task failed." | |
exit 1 | |
fi | |
- name: Upload pytest test results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pytest-results-${{ matrix.python-version }} | |
path: | | |
./unittest.txt | |
./htmlcov/ | |
./tests/data/rsp_cache_new.json | |
retention-days: 3 | |
if: ${{ always() }} | |