You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
224 lines
5.9 KiB
224 lines
5.9 KiB
# Build Validation — Procedures and Requirements
|
|
|
|
> **Agent role**: Reference this file for
|
|
detailed validation procedures when working with build architecture changes.
|
|
|
|
## Required Validation Checklist
|
|
|
|
### Before Any Build System Change
|
|
|
|
- [ ] **Impact Assessment**: Which platforms are affected?
|
|
|
|
- [ ] **Testing Plan**: How will this be tested across platforms?
|
|
|
|
- [ ] **Rollback Plan**: How can this be reverted if it breaks?
|
|
|
|
- [ ] **Documentation**: Will `BUILDING.md` need updates?
|
|
|
|
- [ ] **Dependencies**: Are all required tools available?
|
|
|
|
### After Build System Change
|
|
|
|
- [ ] **Web Platform**: Does `npm run build:web:dev` work?
|
|
|
|
- [ ] **Mobile Platforms**: Do iOS/Android builds succeed?
|
|
|
|
- [ ] **Desktop Platform**: Does Electron build and run?
|
|
|
|
- [ ] **Tests Pass**: Do all build-related tests pass?
|
|
|
|
- [ ] **Documentation Updated**: Is `BUILDING.md` current?
|
|
|
|
## Specific Test Commands (Minimum Required)
|
|
|
|
### Web Platform
|
|
|
|
- **Development**: `npm run build:web:dev` - serve and load app
|
|
|
|
- **Production**: `npm run build:web:prod` - verify SW and WASM present
|
|
|
|
### Mobile Platforms
|
|
|
|
- **Android**: `npm run build:android:test` or `:prod` - confirm assets copied
|
|
|
|
- **iOS**: `npm run build:ios:test` or `:prod` - verify build succeeds
|
|
|
|
### Android Platform (Enhanced)
|
|
|
|
- **Development Mode**: `npm run build:android --dev` -
|
|
|
|
verify 10.0.2.2 API routing
|
|
|
|
- **Custom IP Mode**: `npm run build:android --dev --api-ip 192.168.1.100` -
|
|
|
|
verify custom IP
|
|
|
|
- **Asset Validation**: `npm run build:android --assets` -
|
|
|
|
verify resource generation
|
|
|
|
- **Deploy Mode**: `npm run build:android --deploy` - verify device deployment
|
|
|
|
### Desktop Platform
|
|
|
|
- **Electron**: `npm run build:electron:dev` and packaging for target OS
|
|
|
|
- **Verify**: Single-instance behavior and app boot
|
|
|
|
### Auto-run (if affected)
|
|
|
|
- **Test Mode**: `npm run auto-run:test` and platform variants
|
|
|
|
- **Production Mode**: `npm run auto-run:prod` and platform variants
|
|
|
|
### Clean and Rebuild
|
|
|
|
- Run relevant `clean:*` scripts and ensure re-build works
|
|
|
|
## Risk Matrix & Required Validation
|
|
|
|
### Environment Handling
|
|
|
|
- **Trigger**: Change to `.env.*` loading / variable names
|
|
|
|
- **Validation**: Prove `dev/test/prod` builds; show environment echo in logs
|
|
|
|
### Script Flow
|
|
|
|
- **Trigger**: Reorder steps (prebuild → build → package), new flags
|
|
|
|
- **Validation**: Dry-run + normal run, show exit codes & timing
|
|
|
|
### Platform Packaging
|
|
|
|
- **Trigger**: Electron NSIS/DMG/AppImage, Android/iOS bundle
|
|
|
|
- **Validation**: Produce installer/artifact and open it;
|
|
|
|
verify single-instance,
|
|
icons, signing
|
|
|
|
### Service Worker / WASM
|
|
|
|
- **Trigger**: `sw_combine.js`, WASM copy path
|
|
|
|
- **Validation**: Verify combined SW exists and is injected; page loads offline;
|
|
|
|
WASM present
|
|
|
|
### Docker
|
|
|
|
- **Trigger**: New base image, build args
|
|
|
|
- **Validation**: Build image locally; run container; list produced `/dist`
|
|
|
|
### Android Asset Management
|
|
|
|
- **Trigger**: Changes to `validate_android_assets()` function or resource paths
|
|
|
|
- **Validation**:
|
|
|
|
Run `npm run build:android --assets` and verify all mipmap/drawable resources
|
|
|
|
- **Risk**: Missing splash screens or app icons causing build failures
|
|
|
|
### Android API Routing
|
|
|
|
- **Trigger**: Changes to Android-specific API server IP logic
|
|
|
|
- **Validation**: Test both emulator (10.0.2.2) and custom IP modes
|
|
|
|
- **Risk**: API connectivity failures on different device types
|
|
|
|
### Signing/Notarization
|
|
|
|
- **Trigger**: Cert path/profiles
|
|
|
|
- **Validation**: Show signing logs + verify on target OS
|
|
|
|
## PR Template (Paste into Description)
|
|
|
|
- [ ] **Level**: L1 / L2 / L3 + justification
|
|
|
|
- [ ] **Files & platforms touched**:
|
|
|
|
- [ ] **Risk triggers & mitigations**:
|
|
|
|
- [ ] **Commands run (paste logs)**:
|
|
|
|
- [ ] **Artifacts (names + sha256)**:
|
|
|
|
- [ ] **Docs updated (sections/links)**:
|
|
|
|
- [ ] **Rollback steps verified**:
|
|
|
|
- [ ] **CI**: Jobs passing and artifacts uploaded
|
|
|
|
## ADR Trigger List
|
|
|
|
Raise an ADR when you propose any of:
|
|
|
|
- **New build stage** or reorder of canonical stages
|
|
|
|
- **Replacement of packager** / packaging format
|
|
|
|
- **New environment model** or secure secret handling scheme
|
|
|
|
- **New service worker assembly** strategy or cache policy
|
|
|
|
- **New Docker base** or multi-stage pipeline
|
|
|
|
- **Relocation of build outputs** or directory conventions
|
|
|
|
- **New Android build modes** or argument parsing logic
|
|
|
|
- **Changes to asset validation** or resource generation strategy
|
|
|
|
- **Modifications to platform-specific API routing** (
|
|
|
|
Android emulator vs physical)
|
|
|
|
- **New Android deployment strategies** or device management
|
|
|
|
**ADR must include**:
|
|
motivation, alternatives, risks, validation plan, rollback,
|
|
doc diffs.
|
|
|
|
---
|
|
|
|
**See also**:
|
|
|
|
- `.cursor/rules/architecture/build_architecture_guard.mdc` for
|
|
|
|
core protection guidelines
|
|
|
|
- `.cursor/rules/architecture/build_testing.mdc` for testing requirements
|
|
|
|
**Status**: Active validation procedures
|
|
**Priority**: High
|
|
**Estimated Effort**: Ongoing reference
|
|
**Dependencies**: build_architecture_guard.mdc
|
|
**Stakeholders**: Development team, DevOps team, Build team
|
|
|
|
## Model Implementation Checklist
|
|
|
|
### Before Build Changes
|
|
|
|
- [ ] **Level Assessment**: Determine build validation level (L1/L2/L3)
|
|
- [ ] **Platform Analysis**: Identify all platforms affected by changes
|
|
- [ ] **Risk Assessment**: Identify risk triggers and mitigation strategies
|
|
- [ ] **Rollback Planning**: Plan rollback steps for build failures
|
|
|
|
### During Build Implementation
|
|
|
|
- [ ] **Validation Commands**: Run appropriate validation commands for level
|
|
- [ ] **Platform Testing**: Test changes across all affected platforms
|
|
- [ ] **Risk Mitigation**: Implement identified risk mitigation strategies
|
|
- [ ] **Documentation**: Document all commands run and their outputs
|
|
|
|
### After Build Implementation
|
|
|
|
- [ ] **Artifact Validation**: Verify build artifacts are correct and accessible
|
|
- [ ] **CI Verification**: Ensure CI jobs pass and artifacts are uploaded
|
|
- [ ] **Documentation Update**: Update relevant documentation sections
|
|
- [ ] **Team Communication**: Share build validation results with team
|
|
|