5.3 KiB
5.3 KiB
CI/CD Quick Reference Guide
🚀 Quick Start
Setup CI/CD Pipeline
# Run the setup script
./scripts/setup-cicd.sh
# Or manually check workflow files
ls -la .gitea/workflows/
Test Locally
# Run all quality checks
npm run ci:lint && npm run ci:typecheck && npm run ci:test
# Build and test
npm run ci:build
# Check performance
npm run performance:bundle
📋 Workflow Files
| File | Purpose | Triggers |
|---|---|---|
enhanced-ci.yaml |
Main CI/CD pipeline | Push, PR, Manual |
deploy.yaml |
Deployment pipeline | Manual, Scheduled |
security.yaml |
Security scanning | Push, PR, Daily |
performance.yaml |
Performance monitoring | Push, PR, Daily |
🔧 Configuration
Required Environment Variables
CLOUDFLARE_ACCOUNT_ID=5cee6a21cea282a9c89d5297964402e7
CLOUDFLARE_API_TOKEN=your-cloudflare-api-token
Optional Variables
TOTAL_STATIC_MAX_BYTES=3000000
MAX_ASSET_BYTES=1500000
LHCI_GITHUB_APP_TOKEN=your-lighthouse-ci-token
🎯 Quality Gates
Code Quality
- ✅ ESLint passes
- ✅ TypeScript compiles
- ✅ Code formatted
- ✅ Tests pass
Performance
- ✅ Lighthouse Performance ≥ 80
- ✅ Lighthouse SEO ≥ 90
- ✅ Bundle size under budget
- ✅ Core Web Vitals OK
Security
- ✅ No critical vulnerabilities
- ✅ Approved licenses
- ✅ No hardcoded secrets
- ✅ Security headers present
🚀 Deployment Commands
Local Development
# Start development server
npm run dev
# Build for production
npm run ci:build
# Preview locally
npm run preview
Deploy to Preview
# Via npm script
npm run deploy:preview
# Via Gitea Actions
# Go to Actions → Deploy → Select "preview"
Deploy to Production
# Via npm script
npm run deploy:production
# Via Gitea Actions
# Go to Actions → Deploy → Select "production"
📊 Monitoring
Performance Metrics
- Lighthouse Performance: Target ≥ 80
- Lighthouse SEO: Target ≥ 90
- Bundle Size: Target < 3MB total
- Response Time: Target < 2s
Security Metrics
- Critical Vulnerabilities: 0 allowed
- High Vulnerabilities: Monitor closely
- License Compliance: Approved licenses only
SEO Metrics
- ✅ Open Graph tags
- ✅ Twitter Card tags
- ✅ JSON-LD structured data
- ✅ Canonical URLs
- ✅ Meta descriptions
🛠️ Troubleshooting
Common Issues
Build Fails
# Check Node.js version
node --version # Should be 20.x
# Check dependencies
npm ci
# Check TypeScript
npm run ci:typecheck
Deployment Fails
# Check Cloudflare credentials
echo $CLOUDFLARE_ACCOUNT_ID
echo $CLOUDFLARE_API_TOKEN
# Test build locally
npm run ci:build
# Check build artifacts
ls -la .vercel/output/
Performance Issues
# Check bundle size
npm run ci:budgets
# Run Lighthouse
npm run performance:lighthouse
# Check for large files
find .vercel/output/static -size +500k
Security Issues
# Audit dependencies
npm run security:audit
# Check outdated packages
npm run security:outdated
# Fix vulnerabilities
npm audit fix
🔍 Debug Commands
Pipeline Status
# View workflow runs
gh run list
# View specific run
gh run view <run-id>
# Download artifacts
gh run download <run-id>
Local Debugging
# Verbose build
npm run ci:build --verbose
# Test with coverage
npm run ci:test --coverage
# Check bundle analysis
npm run ci:budgets
📚 Useful Scripts
Package.json Scripts
# CI Scripts
npm run ci:lint # ESLint
npm run ci:typecheck # TypeScript
npm run ci:test # Unit tests
npm run ci:build # Build
npm run ci:budgets # Bundle analysis
# Formatting
npm run format # Format code
npm run format:check # Check formatting
# Security
npm run security:audit # Audit dependencies
npm run security:outdated # Check outdated
npm run security:fix # Fix vulnerabilities
# Performance
npm run performance:lighthouse # Lighthouse audit
npm run performance:bundle # Bundle analysis
# Deployment
npm run deploy:preview # Deploy to preview
npm run deploy:production # Deploy to production
🎯 Best Practices
Code Quality
- Write meaningful commit messages
- Keep PRs small and focused
- Add tests for new features
- Follow TypeScript best practices
- Use ESLint and Prettier consistently
Security
- Regularly update dependencies
- Use environment variables for secrets
- Review security scan results
- Follow OWASP guidelines
- Implement proper access controls
Performance
- Monitor bundle sizes
- Optimize images and assets
- Use lazy loading appropriately
- Implement proper caching
- Monitor Core Web Vitals
Deployment
- Test in preview environment first
- Use feature flags for gradual rollouts
- Monitor deployment health
- Have rollback plan ready
- Document deployment procedures
📞 Support
Getting Help
- Check workflow logs in Gitea Actions
- Review error messages carefully
- Consult documentation
- Check GitHub Issues
- Contact development team
Reporting Issues
- Use GitHub Issues for bugs
- Provide detailed error messages
- Include relevant logs
- Describe reproduction steps
- Suggest potential solutions
Last Updated: 2025-10-09
Version: 1.0.0