This repository uses GitHub Actions for continuous integration and deployment across multiple platforms and environments.
- Triggers: Push to
main/developbranches, PRs tomain - Jobs:
test: Unit tests, linting, and builde2e-test: End-to-end testing with Playwrightdeploy-staging: Deploy to staging environment (develop branch)deploy-production: Deploy to production (main branch)security-scan: Security audit and CodeQL analysis
- Triggers: Push to
main/developbranches with mobile changes - Jobs:
mobile-test: TypeScript checking, linting, unit testsmobile-e2e-test: Mobile E2E testingmobile-build-staging: Development builds for stagingmobile-build-production: Production builds for app stores
- Triggers: Push to
main/developbranches with functions changes - Jobs:
functions-test: Linting, unit tests, security auditfunctions-deploy-staging: Deploy to staging environmentfunctions-deploy-production: Deploy to production
Add these secrets to your GitHub repository settings:
FIREBASE_TOKEN: Firebase CLI token for deploymentsfirebase login:ci
EXPO_TOKEN: Expo authentication tokennpx expo login npx expo whoami
SLACK_WEBHOOK: Slack webhook URL for deployment notifications
- Protected environment requiring manual approval
- All production deployments require review
- Automatic notifications on deployment status
- Automatic deployment from
developbranch - Used for testing before production release
main (production) ← merge from develop
↑
develop (staging) ← merge from feature branches
↑
feature/* (development)
- Development: Create feature branch from
develop - Testing: Push changes trigger automated tests
- Staging: Merge to
developtriggers staging deployment - Production: Merge to
maintriggers production deployment (with approval)
If needed, you can still deploy manually:
# Web application
cd Kiddo_Quest
npm run deploy
# Mobile application
cd KiddoQuest_mobile
npx eas build --platform all --profile production
# Firebase functions
cd Kiddo_Quest
firebase deploy --only functions- Build failures: Check Node.js version compatibility
- Test failures: Ensure all tests pass locally first
- Firebase deployment issues: Verify Firebase token is valid
- Mobile build issues: Check Expo/EAS configuration
- Check GitHub Actions logs for detailed error messages
- Firebase deployment logs available in Firebase Console
- Mobile build logs available in Expo dashboard
- All secrets are encrypted in GitHub
- CodeQL analysis runs on every push
- Dependency security audits included
- Service account keys excluded from repository
- Deployment status notifications via Slack
- Build artifacts retained for 7-30 days
- Test results uploaded for failed builds
- Performance metrics tracked