- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1
 
Add automated cross-platform builds for x64, ARM32, and ARM64 on tag releases #3
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
Add automated cross-platform builds for x64, ARM32, and ARM64 on tag releases #3
Conversation
Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
…ary files Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
| 
           All platforms need to compile the logroller binary file as well.  | 
    
Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
          
 Done! I've updated the workflow to enable logroller compilation for all platforms including ARM64 and ARM32. The changes in commit 351d675 enable  Warning Firewall rules blocked me from connecting to one or more addressesI tried to connect to the following addresses, but was blocked by firewall rules:
 If you need me to access, download, or install something from one of these locations, you can either: 
  | 
    
…releases (#3) * Initial plan * Add cross-platform release workflow for tags Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Update cross-platform workflow with architecture fixes and remove binary files Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Add comprehensive documentation for cross-platform builds Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Enable logroller compilation for all platforms including ARM64 and ARM32 Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
…releases (#3) * Initial plan * Add cross-platform release workflow for tags Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Update cross-platform workflow with architecture fixes and remove binary files Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Add comprehensive documentation for cross-platform builds Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Enable logroller compilation for all platforms including ARM64 and ARM32 Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
…releases (#3) * Initial plan * Add cross-platform release workflow for tags Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Update cross-platform workflow with architecture fixes and remove binary files Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Add comprehensive documentation for cross-platform builds Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> * Enable logroller compilation for all platforms including ARM64 and ARM32 Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
This PR implements comprehensive cross-platform build automation that automatically compiles and packages the ulog library for multiple architectures whenever a new tag is created.
Problem Addressed
The repository lacked automated builds for different architectures, requiring manual compilation for users targeting ARM devices or different platforms. This created a barrier for adoption on embedded systems and cross-platform development.
Solution
Added a GitHub Actions workflow (
.github/workflows/release.yml) that:v*patternlinux-x64: Native x86_64 build with full examples and toolslinux-arm64: Cross-compiled ARM64/AArch64 build (library only)linux-arm32: Cross-compiled ARM32 build (library only)Key Features
Architecture Verification
Each build produces correctly targeted binaries:
Smart Cross-compilation
gcc-aarch64-linux-gnu,gcc-arm-linux-gnueabihf)Package Contents
Each release includes:
libulog.a) for the target architectureUsage
Developers can now simply:
git tag v1.0.0 && git push origin v1.0.0gcc -I./include your_program.c -L./lib -lulogTesting
The implementation has been thoroughly tested with:
fileandobjdumpDocumentation
Added
CROSS_PLATFORM_BUILDS.mdwith comprehensive documentation covering:This automation significantly reduces the barrier to adoption for embedded developers and ensures consistent, reliable builds across all supported architectures.
Warning
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
esm.ubuntu.com/usr/lib/apt/methods/https(dns block)If you need me to access, download, or install something from one of these locations, you can either:
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.