Files
nas-tools/.gitea/workflows/test.yml
T
Gan, Jimmy e60c5d534e
Run Tests / Backend Tests (push) Failing after 6m0s
Run Tests / Test Summary (push) Has been cancelled
Run Tests / Frontend Tests (push) Has started running
fix: use --break-system-packages for pip install in CI
2026-04-04 15:17:22 +08:00

88 lines
2.3 KiB
YAML

name: Run Tests
on:
push:
branches: [main, dev]
pull_request:
branches: [main]
jobs:
backend-tests:
name: Backend Tests
runs-on: ubuntu-latest
env:
SECRET_KEY: test-secret-key-for-ci-environment-32chars-minimum
steps:
- name: Checkout repository
run: |
git clone http://gitea:3000/jimmy/nas-tools.git .
git checkout ${{ github.sha }}
- name: Install Python
run: |
apt-get update && apt-get install -y python3 python3-pip python3-venv
- name: Install dependencies
run: |
cd dashboard/backend
pip3 install --break-system-packages -r requirements.txt
pip3 install --break-system-packages -r requirements-dev.txt
pip3 install --break-system-packages pytest-timeout
- name: Run unit tests
run: |
cd dashboard/backend
pytest tests/unit/ -v --timeout=30 -x
echo "✅ Unit tests passed"
- name: Run integration tests
run: |
cd dashboard/backend
pytest tests/integration/ -v --timeout=30 -x
echo "✅ Integration tests passed"
frontend-tests:
name: Frontend Tests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
run: |
git clone http://gitea:3000/jimmy/nas-tools.git .
git checkout ${{ github.sha }}
- name: Install Node.js
run: |
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
- name: Install dependencies
run: |
cd dashboard/frontend
npm ci
- name: Run tests
run: |
cd dashboard/frontend
npm run test:coverage -- --reporter=verbose --run
echo "✅ Frontend tests passed"
test-summary:
name: Test Summary
runs-on: ubuntu-latest
needs: [backend-tests, frontend-tests]
if: always()
steps:
- name: Check job results
run: |
echo "Backend tests: ${{ needs.backend-tests.result }}"
echo "Frontend tests: ${{ needs.frontend-tests.result }}"
if [ "${{ needs.backend-tests.result }}" != "success" ] || [ "${{ needs.frontend-tests.result }}" != "success" ]; then
echo "❌ Some tests failed"
exit 1
fi
echo "✅ All tests passed"