Add NixOS VM integration tests and update CI/CD pipeline configuration. Introduce checks for backend integration, full-stack, performance, and security tests using native NixOS services. Remove legacy GitHub Actions workflow and replace with Gitea Actions runner configuration. Update README and quickstart guide to reflect new development environment setup and testing commands.
This commit is contained in:
62
README.md
62
README.md
@@ -16,20 +16,23 @@ This project follows a formal constitution that establishes binding principles f
|
||||
|
||||
## Development Environment
|
||||
|
||||
This project uses Nix for reproducible development environments:
|
||||
This project uses Nix flakes for reproducible development environments:
|
||||
|
||||
```bash
|
||||
# Enter development shell
|
||||
nix-shell
|
||||
# Enter development shell (from flake.nix)
|
||||
nix develop
|
||||
|
||||
# Or use direnv for automatic activation
|
||||
echo "use nix" > .envrc
|
||||
direnv allow
|
||||
direnv allow # .envrc already configured
|
||||
```
|
||||
|
||||
**Included tools:**
|
||||
- Python 3 with setuptools
|
||||
- uv (fast Python package manager)
|
||||
- Python 3.12 with all backend dependencies (FastAPI, SQLAlchemy, pytest, etc.)
|
||||
- Node.js + npm for frontend development
|
||||
- PostgreSQL client tools
|
||||
- MinIO client
|
||||
- Ruff (Python linter/formatter)
|
||||
- All project dependencies from flake.nix
|
||||
|
||||
## Project Structure
|
||||
|
||||
@@ -44,7 +47,19 @@ webref/
|
||||
│ ├── tasks-template.md # Task tracking template
|
||||
│ └── commands/
|
||||
│ └── constitution.md # Constitution amendment workflow
|
||||
├── shell.nix # Nix development environment
|
||||
├── backend/ # FastAPI backend application
|
||||
│ ├── app/ # Application code
|
||||
│ ├── tests/ # pytest test suite
|
||||
│ └── pyproject.toml # Python dependencies
|
||||
├── frontend/ # Svelte + Konva.js frontend
|
||||
│ ├── src/ # Application code
|
||||
│ ├── tests/ # Vitest test suite
|
||||
│ └── package.json # Node dependencies
|
||||
├── nixos/ # NixOS configuration and tests
|
||||
│ ├── tests.nix # NixOS VM integration tests
|
||||
│ └── gitea-runner.nix # Gitea Actions runner config
|
||||
├── flake.nix # Nix flake (dependencies & dev shell)
|
||||
├── .envrc # direnv configuration
|
||||
└── README.md # This file
|
||||
```
|
||||
|
||||
@@ -94,16 +109,37 @@ All code must meet these requirements before merge:
|
||||
|
||||
## Testing
|
||||
|
||||
```bash
|
||||
# Run tests
|
||||
pytest
|
||||
### Unit Tests
|
||||
|
||||
# With coverage report
|
||||
pytest --cov=webref --cov-report=html
|
||||
```bash
|
||||
# Backend tests
|
||||
cd backend && pytest --cov=app --cov-report=html
|
||||
|
||||
# Frontend tests
|
||||
cd frontend && npm test
|
||||
|
||||
# Coverage must be ≥80% per Constitutional Principle 2
|
||||
```
|
||||
|
||||
### NixOS VM Integration Tests
|
||||
|
||||
```bash
|
||||
# Run all integration tests in isolated VMs
|
||||
nix flake check
|
||||
|
||||
# Run specific test
|
||||
nix build .#checks.backend-integration
|
||||
nix build .#checks.full-stack
|
||||
nix build .#checks.performance
|
||||
nix build .#checks.security
|
||||
|
||||
# Interactive debugging
|
||||
nix build .#checks.backend-integration.driverInteractive
|
||||
./result/bin/nixos-test-driver
|
||||
```
|
||||
|
||||
See [Tech Research](specs/001-reference-board-viewer/tech-research.md) for CI/testing architecture details.
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Read the [constitution](.specify/memory/constitution.md)
|
||||
|
||||
Reference in New Issue
Block a user