GitHub Actions CI Workflow
Set up complete GitHub Actions workflows for continuous integration and deployment of worldbuilding applications.
Overview
To configure comprehensive CI/CD pipelines with GitHub Actions:
- •Analyze the project structure and dependencies
- •Generate workflow files for lint, test, build, and deploy stages
- •Configure caching strategies for node_modules, Next.js cache, and build artifacts
- •Add preview deployment with automatic URL comments on pull requests
- •Set up environment-specific deployment targets
Workflow Structure
Create the following workflow files in .github/workflows/:
CI Workflow (ci.yml)
To set up continuous integration:
- •Configure triggers for push to main/master and pull requests
- •Set up job matrix for multiple Node.js versions if needed
- •Add checkout, dependency installation with caching
- •Run linting (ESLint, Prettier, type checking)
- •Execute test suites with coverage reporting
- •Build the application to verify no build errors
- •Upload build artifacts for deployment jobs
Deploy Workflow (deploy.yml)
To set up continuous deployment:
- •Trigger on push to main/master branch
- •Download build artifacts from CI workflow
- •Deploy to target environment (Vercel, Netlify, AWS, etc.)
- •Set environment variables and secrets
- •Notify on deployment success/failure
Preview Deployment (preview.yml)
To set up preview deployments for pull requests:
- •Trigger on pull_request events
- •Build and deploy to preview environment
- •Generate unique preview URL
- •Comment preview URL on pull request using GitHub API
- •Clean up preview deployments when PR is closed
Caching Strategy
To optimize workflow performance:
- •Cache
node_moduleswith dependency lock file as cache key - •Cache Next.js build cache (
.next/cache) for faster builds - •Cache testing artifacts and coverage reports
- •Use
actions/cache@v3with appropriate cache keys - •Implement cache restoration fallbacks for partial matches
Resources
Consult references/github-actions-best-practices.md for workflow optimization patterns and security best practices.
Use scripts/generate_ci_workflow.py to scaffold workflow files based on detected project configuration.
Reference assets/workflow-templates/ for starter templates for common frameworks (Next.js, React, Node.js).
Implementation Steps
To implement complete CI/CD with GitHub Actions:
- •
Detect Project Configuration
- •Identify framework (Next.js, Vite, CRA, etc.)
- •Detect package manager (npm, yarn, pnpm)
- •Find test runner (Jest, Vitest, Playwright)
- •Check for linting configuration
- •
Generate Workflow Files
- •Use
scripts/generate_ci_workflow.pywith detected configuration - •Customize jobs based on project requirements
- •Add matrix builds if testing multiple environments
- •Use
- •
Configure Secrets and Variables
- •Document required secrets in README or workflow comments
- •Set up environment-specific variables
- •Configure deployment credentials
- •
Add Preview Deployments
- •Generate preview workflow with URL commenting
- •Configure preview environment provider
- •Set up cleanup automation
- •
Optimize Caching
- •Implement multi-level caching strategy
- •Use cache keys based on lock files
- •Add cache restoration logic
- •
Test and Validate
- •Push workflows to repository
- •Create test PR to verify preview deployments
- •Check workflow execution times and optimize
Advanced Features
To add advanced CI/CD capabilities:
- •Parallel Jobs: Split test suites across multiple jobs for faster execution
- •Conditional Deployments: Deploy only specific paths or when conditions are met
- •Status Checks: Require CI passing before merge
- •Deployment Gates: Add manual approval steps for production deployments
- •Performance Monitoring: Integrate Lighthouse CI or bundle analysis
- •Dependency Updates: Automate dependency updates with Dependabot integration
Framework-Specific Configuration
Next.js Applications
To optimize for Next.js:
- •Cache
.next/cachedirectory for faster builds - •Set
NEXT_TELEMETRY_DISABLED=1to disable telemetry - •Use
next buildandnext exportfor static exports - •Configure ISR revalidation for preview deployments
Full-Stack Applications
To handle full-stack deployments:
- •Set up separate jobs for frontend and backend
- •Configure database migrations in deployment workflow
- •Run integration tests against preview environment
- •Coordinate deployment order (backend first, then frontend)
Deployment Providers
Consult references/deployment-providers.md for platform-specific configuration:
- •Vercel: Use vercel-action with project configuration
- •Netlify: Use netlify-cli with site ID and auth token
- •AWS: Configure S3/CloudFront or ECS deployment
- •Docker: Build and push container images to registry
- •Self-Hosted: SSH deployment with rsync or git pull
Monitoring and Notifications
To add monitoring and notifications:
- •Configure Slack/Discord webhooks for deployment notifications
- •Add GitHub status checks for required CI jobs
- •Set up error tracking integration (Sentry, etc.)
- •Monitor workflow execution times and optimize slow jobs
- •Track deployment frequency and failure rates
Troubleshooting
Common issues and solutions:
- •Cache Misses: Verify cache key includes all dependency files
- •Timeout Errors: Increase timeout or split into parallel jobs
- •Permission Errors: Check repository secrets and permissions
- •Build Failures: Ensure environment variables are set correctly
- •Preview URL Not Commented: Verify PR comment permissions and token scope