-
Notifications
You must be signed in to change notification settings - Fork 3.2k
feat: implement native ARM64 Docker builds with CDN support #791
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
Conversation
- Replace QEMU emulation with native ARM64/AMD64 runners (linux-arm64-8-core, linux-x64-8-core) - Fix manifest creation with proper error handling and image existence checks - Add CDN video support with getVideoUrl function and Video component - Update all docs MDX files to use Video component instead of raw video tags - Update GitHub Actions workflow to use architecture-specific builds - Remove QEMU setup to eliminate emulation timeout issues - Maintain multi-arch Docker image support through manifests
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
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.
Greptile Summary
This PR implements two major improvements: native ARM64 Docker builds and CDN video support for documentation.
Docker Build Improvements: The PR replaces QEMU emulation with native architecture builds by using separate GitHub runners (linux-arm64-8-core, linux-x64-8-core). The workflow now builds architecture-specific images (e.g., latest-amd64, latest-arm64) and combines them into multi-arch manifests. This eliminates the performance bottleneck and timeout issues caused by QEMU emulation, significantly improving build times while maintaining backward compatibility through multi-arch manifests.
CDN Video Support: A new getVideoUrl utility function and Video component have been added to centralize video asset management. The getVideoUrl function dynamically constructs video URLs using either a CDN (via NEXT_PUBLIC_BLOB_BASE_URL environment variable) or falls back to local paths. The Video component wraps HTML5 video elements with sensible defaults (autoPlay, loop, muted, playsInline) and uses the URL utility. All documentation MDX files have been systematically updated to replace raw HTML video tags with this standardized component, providing better performance through CDN delivery and consistent video behavior across the documentation.
Both changes integrate well with the existing codebase - the Docker workflow maintains the same image naming conventions and multi-arch support, while the video components follow established patterns in the docs application structure.
Confidence score: 3/5
• This PR has some potential issues that need attention, particularly in the Docker workflow complexity and component implementation
• The GitHub Actions workflow introduces significant complexity with custom runners and manifest creation that could fail in different environments, plus there's redundant turbo installation in the Dockerfile
• Files needing attention: .github/workflows/build.yml (custom runner dependency, manifest creation logic), docker/app.Dockerfile (redundant installation), and apps/docs/components/ui/video.tsx (accessibility considerations)
13 files reviewed, 1 comment
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
…oai#791) * feat: implement native ARM64 Docker builds with CDN support - Replace QEMU emulation with native ARM64/AMD64 runners (linux-arm64-8-core, linux-x64-8-core) - Fix manifest creation with proper error handling and image existence checks - Add CDN video support with getVideoUrl function and Video component - Update all docs MDX files to use Video component instead of raw video tags - Update GitHub Actions workflow to use architecture-specific builds - Remove QEMU setup to eliminate emulation timeout issues - Maintain multi-arch Docker image support through manifests * Update .github/workflows/build.yml Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com> --------- Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Description
Type of change
How Has This Been Tested?
On the branch -- test-build-action-fix pushes.
Checklist:
bun run test)Security Considerations: