-
Notifications
You must be signed in to change notification settings - Fork 2
Remove arm64 builds #203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove arm64 builds #203
Conversation
- Add .dockerignore to reduce Docker build context size - Optimize cache keys to exclude generated files and target source files only - Add separate cache scopes for lint/test/production isolation - Add cross-job cache fallback strategies for better hit rates Expected improvements: - Workflow-only changes should now hit ~90% cache - Docker builds exclude unnecessary .github/, .next/, coverage/ files - Cache keys focus on src/ files instead of all JS/TS files - Better cache isolation prevents cross-contamination
- Use official Next.js GitHub Actions caching recommendations - Cache ~/.npm and .next/cache paths as per Vercel guidelines - Upgrade to actions/cache@v4 for better performance - Simplify cache keys to match official patterns - Remove separate node_modules caching in favor of npm cache - Maintain cross-job fallback strategies for cache efficiency This follows the exact caching strategy recommended in: https://nextjs.org/docs/app/guides/ci-build-caching#github-actions
- Use .next/cache path instead of ${{ github.workspace }}/.next/cache - Remove ~/.npm caching (redundant with setup-node cache: 'npm') - Use shared cache key across jobs for better efficiency - Next.js requires exact .next/cache path relative to working directory This should resolve the 'No build cache found' warning and enable proper incremental builds in CI.
Resolves cache conflicts between parallel lint and test jobs by: - Adding job-specific prefixes: nextjs-lint, nextjs-test, nextjs-prod - Maintaining fallback chains for cache sharing across job types - Prevents "Unable to reserve cache" errors during parallel execution Cache keys now unique per job while preserving cross-job optimization.
- Remove .github/workflows/node.js.yml (redundant with modern workflow) - Fix npm run ci → npm ci in production workflow - Eliminates duplicate CI jobs and cache conflicts - Modern workflow provides linting, caching, and Docker deployment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! I just added a couple small comments to bump actions versions, adjust remove unused caching, and add concurrency cancelation which is standard best practice.
- Update GitHub Actions workflows to use Node.js 24.x - Upgrade actions/setup-node from v3 to v5 for latest features - Update Dockerfile from node:22-alpine3.19 to node:24-alpine - Add .nvmrc file for local development consistency - Update @types/node to ^24.0.0 in package.json Ensures compatibility with GitHub's Node.js 20 deprecation timeline.
ESLint only analyzes source code and doesn't use .next/cache build output. Keeps cache in test job where npm run build actually runs. Co-authored-by: lmcdonough
Updates to latest stable version for improved security and compatibility with current Docker registry APIs.
Prevents resource waste by cancelling outdated CI runs when new commits are pushed to the same branch/PR. Improves CI efficiency and reduces queue times for latest changes. Co-authored-by: lmcdonough
Ensures npm cache properly invalidates when package-lock.json changes by explicitly specifying the lockfile path instead of relying on auto-detection heuristics. Co-authored-by: lmcdonough
Keeps eslint-config-next synchronized with Next.js 15.4.7 for optimal compatibility while maintaining stable ESLint 8.57.1.
@lmcdonough Thanks for your review. All changes have been made and it's working even better thanks to your excellent suggestions. Ready for a last quick look and approval if it looks good to you. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, great job man!
Description
Restructure frontend GitHub Actions workflows to match the sophisticated backend architecture, implementing a 3-stage pipeline with advanced caching strategies, quality gates, and enhanced security features while removing ARM64
builds.
This change transforms our frontend CI/CD from basic single-job architecture to the proven backend pattern of
lint → test → docker
with dependency gates, significantly improving build performance and developer experience.GitHub Issue: None
Changes
lint
→test
→docker
) with quality gateslinux/amd64
architecturelatest
+{git-sha}
)--cache
flag)Screenshots / Videos Showing UI Changes (if applicable)
N/A - Infrastructure changes only
Testing Strategy
Concerns