Skip to content

chore(ci): generate pytest summary #145

chore(ci): generate pytest summary

chore(ci): generate pytest summary #145

Workflow file for this run

name: Test
on:
push:
branches:
- "main"
pull_request:
types: [opened, synchronize, reopened]
paths:
- "src/**"
- "tests/**"
jobs:
check:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.10", "3.11", "3.12"]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements-dev.txt"
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements-dev.txt
- name: Run pytest and capture output (Linux/macOS)
if: runner.os != 'Windows'
run: |
pytest --color=no --cov --cov-report=xml | tee pytest_output.txt
echo '```python' >> $GITHUB_STEP_SUMMARY
cat pytest_output.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
# 检查 pytest 的退出状态码
exit_code=$?
if [ $exit_code -ne 0 ]; then
echo "## Tests Failed" >> $GITHUB_STEP_SUMMARY
fi
exit $exit_code
- name: Run pytest and capture output (Windows)
if: runner.os == 'Windows'
run: |
pytest --color=no --cov --cov-report=xml | Out-File -FilePath pytest_output.txt -Encoding utf8
echo '```python' >> $env:GITHUB_STEP_SUMMARY
Get-Content pytest_output.txt | Out-File -Append -FilePath $env:GITHUB_STEP_SUMMARY
echo '```' >> $env:GITHUB_STEP_SUMMARY
# 检查 pytest 的退出状态码
if ($LASTEXITCODE -ne 0) {
echo "## Tests Failed" >> $env:GITHUB_STEP_SUMMARY
exit 1
}
- name: Upload results to Codecov
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'
uses: codecov/codecov-action@v4
with:
verbose: true
token: ${{ secrets.CODECOV_TOKEN }}