Add automated cross-platform builds for x64, ARM32, and ARM64 on tag releases#3
Merged
shawnfeng0 merged 5 commits intomainfrom Jul 26, 2025
Merged
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>
Copilot
AI
changed the title
[WIP] 在每个tag的版本上自动编译打包一个x64和arm32, arm64平台的包
Add automated cross-platform builds for x64, ARM32, and ARM64 on tag releases
Jul 26, 2025
Owner
|
All platforms need to compile the logroller binary file as well. |
Co-authored-by: shawnfeng0 <23150404+shawnfeng0@users.noreply.github.com>
Contributor
Author
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:
|
shawnfeng0
added a commit
that referenced
this pull request
Jul 27, 2025
…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>
shawnfeng0
added a commit
that referenced
this pull request
Jul 27, 2025
…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>
shawnfeng0
added a commit
that referenced
this pull request
Jul 27, 2025
…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 file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.