7dd2d6df9f
Deploy Claude Dev (Dev) / deploy-claude-dev-dev (push) Failing after 10m10s
Run Tests / Backend Tests (push) Has been cancelled
Run Tests / Frontend Tests (push) Has been cancelled
Run Tests / Test Summary (push) Has been cancelled
Deploy Dashboard (Dev) / deploy-dev (push) Failing after 4m22s
Gitea Actions runner cannot fetch actions from GitHub (connection reset). Revert to manual git clone for checkout and direct tool installation.
88 lines
2.3 KiB
YAML
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 --depth 1 --branch ${{ github.ref_name }} http://gitea:3000/jimmy/nas-tools.git .
|
|
git checkout ${{ github.sha }}
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
cd dashboard/backend
|
|
python3 -m venv venv
|
|
. venv/bin/activate
|
|
pip install -r requirements.txt
|
|
pip install -r requirements-dev.txt
|
|
pip install pytest-timeout
|
|
|
|
- name: Run unit tests
|
|
run: |
|
|
cd dashboard/backend
|
|
. venv/bin/activate
|
|
pytest tests/unit/ -v --timeout=30 -x
|
|
echo "✅ Unit tests passed"
|
|
|
|
- name: Run integration tests
|
|
run: |
|
|
cd dashboard/backend
|
|
. venv/bin/activate
|
|
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 --depth 1 --branch ${{ github.ref_name }} 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"
|