
快速入门Run-On-Arch5分钟搭建多架构CI/CD流水线【免费下载链接】run-on-arch-actionA Github Action that executes jobs/commands on non-x86 cpu architectures (ARMv6, ARMv7, aarch64, s390x, ppc64le, riscv64) via QEMU项目地址: https://gitcode.com/gh_mirrors/ru/run-on-arch-action想要在GitHub Actions中轻松测试和构建跨架构软件吗Run-On-Arch Action是您的终极解决方案这个强大的GitHub Action让您能够在非x86 CPU架构包括ARMv6、ARMv7、aarch64、s390x、ppc64le、riscv64上执行命令通过QEMU实现完美的架构模拟。无论您是在开发物联网设备、服务器软件还是嵌入式系统这个工具都能帮助您快速搭建多架构CI/CD流水线。 为什么选择Run-On-Arch Action在当今多架构计算的时代软件需要在不同的CPU架构上运行。Run-On-Arch Action解决了GitHub Actions原生只支持x86架构的限制让您能够一键测试在ARM、PowerPC、s390x等多种架构上运行测试跨平台构建为不同架构生成二进制包持续集成确保代码在所有目标平台上都能正常工作性能验证在不同架构上验证软件性能 支持的架构和发行版Run-On-Arch Action支持广泛的架构和Linux发行版组合架构支持的发行版armv6stretch, buster, bullseye, bookworm, alpine_latestarmv7ubuntu20.04-24.04, Debian系列, Fedora, Alpine, Arch Linux ARMaarch64Ubuntu全系列, Debian全系列, Fedora, Alpine, Arch Linux ARMriscv64Ubuntu 20.04-24.04, alpine_edges390xUbuntu全系列, Debian全系列, Alpineppc64leUbuntu全系列, Debian全系列, Alpine️ 5分钟快速配置指南步骤1基础配置创建一个简单的.github/workflows/multi-arch.yml工作流文件name: Multi-Arch Build on: [push, pull_request] jobs: armv7_build: runs-on: ubuntu-24.04 name: Build on Ubuntu 24.04 armv7 steps: - uses: actions/checkoutv4 - uses: uraimo/run-on-arch-actionv3 name: Run commands on ARMv7 id: build_step with: arch: armv7 distro: ubuntu24.04 githubToken: ${{ github.token }} run: | uname -a echo Building for ARMv7 architecture步骤2使用矩阵构建多架构利用GitHub Actions的矩阵策略一次性构建多个架构jobs: multi_arch_build: runs-on: ubuntu-24.04 name: Build on ${{ matrix.distro }} ${{ matrix.arch }} strategy: matrix: include: - arch: aarch64 distro: ubuntu24.04 - arch: armv7 distro: bullseye - arch: ppc64le distro: alpine_latest steps: - uses: actions/checkoutv4 - uses: uraimo/run-on-arch-actionv3 with: arch: ${{ matrix.arch }} distro: ${{ matrix.distro }} githubToken: ${{ github.token }} run: | echo Building on ${{ matrix.arch }} with ${{ matrix.distro }} # 添加您的构建命令步骤3高级功能配置Run-On-Arch Action提供了多种高级配置选项- uses: uraimo/run-on-arch-actionv3 with: arch: aarch64 distro: ubuntu24.04 githubToken: ${{ github.token }} # 环境变量设置 env: | BUILD_TYPE: release VERSION: 1.0.0 # 主机端准备工作 setup: | mkdir -p ${PWD}/artifacts # Docker运行参数 dockerRunArgs: | --volume ${PWD}/artifacts:/artifacts --memory2g # 容器内依赖安装 install: | apt-get update -q -y apt-get install -q -y build-essential cmake git # 实际运行命令 run: | echo Building in $BUILD_TYPE mode # 您的构建脚本 cp build/output /artifacts/app-$VERSION-${{ matrix.arch }} 实用技巧和最佳实践1. 加速构建过程使用GitHub Token缓存Docker镜像可以显著提高构建速度githubToken: ${{ github.token }}这个配置会将构建的容器镜像缓存到GitHub Package Registry中后续构建可以直接使用缓存的镜像。2. 处理文件输出通过volume挂载在容器和主机之间共享文件setup: | mkdir -p ${PWD}/output dockerRunArgs: | --volume ${PWD}/output:/output run: | # 在容器中生成文件 echo Build result /output/result.txt3. 自定义基础镜像如果需要特定的基础镜像可以使用base_image参数arch: none distro: none base_image: --platformlinux/riscv64 riscv64/ubuntu:24.044. 错误处理和调试在命令执行失败时获取详细的错误信息run: | set -e # 遇到错误立即退出 echo Starting build process... # 您的构建命令 echo Build completed successfully 性能优化建议由于QEMU模拟会带来一定的性能开销建议最小化容器内容只安装必要的依赖使用缓存充分利用install参数预装依赖并行构建使用矩阵策略同时构建多个架构资源限制通过dockerRunArgs设置适当的内存限制 常见问题解答Q: 如何查看支持的架构和发行版组合A: 查看项目中的Dockerfiles目录了解所有预配置的组合或参考README中的完整支持矩阵。Q: 构建速度慢怎么办A: 确保使用了githubToken进行镜像缓存并考虑在install阶段预装常用依赖。Q: 如何调试容器内的问题A: 可以在run命令中添加调试输出或使用dockerRunArgs添加交互式选项。Q: 支持自定义架构吗A: 可以通过base_image参数使用任何支持QEMU的Docker镜像。 实际应用场景场景1跨平台Go应用构建run: | GOOSlinux GOARCH${{ matrix.goarch }} go build -o app-${{ matrix.arch }} # 为不同架构设置对应的GOARCH场景2Rust项目多架构测试install: | apt-get update apt-get install -y build-essential curl --proto https --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source $HOME/.cargo/env rustup target add ${{ matrix.rust_target }} run: | cargo build --target ${{ matrix.rust_target }} --release场景3Python包的多架构打包install: | apt-get update apt-get install -y python3-pip pip3 install build twine run: | python3 -m build --wheel # 为不同架构生成对应的wheel包 进阶配置完整的多架构CI/CD流水线创建一个完整的跨架构CI/CD流水线包含测试、构建和发布name: Full Multi-Arch Pipeline on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-24.04 strategy: matrix: arch: [aarch64, armv7, ppc64le] distro: [ubuntu24.04, bullseye] steps: - uses: actions/checkoutv4 - uses: uraimo/run-on-arch-actionv3 with: arch: ${{ matrix.arch }} distro: ${{ matrix.distro }} githubToken: ${{ github.token }} run: | # 运行测试套件 ./run_tests.sh build: needs: test runs-on: ubuntu-24.04 strategy: matrix: arch: [aarch64, armv7, ppc64le, s390x] steps: - uses: actions/checkoutv4 - uses: uraimo/run-on-arch-actionv3 with: arch: ${{ matrix.arch }} distro: ubuntu24.04 githubToken: ${{ github.token }} setup: | mkdir -p ${PWD}/dist dockerRunArgs: | --volume ${PWD}/dist:/dist run: | # 构建过程 make build cp output /dist/app-${{ matrix.arch }} release: needs: build if: github.event_name push github.ref refs/heads/main runs-on: ubuntu-24.04 steps: - uses: actions/download-artifactv4 - name: Create Release # 发布所有架构的构建结果 run: | # 发布逻辑 总结Run-On-Arch Action是一个功能强大的工具它让多架构CI/CD变得简单易行。通过5分钟的配置您就可以开始为ARM、PowerPC、s390x等多种架构构建和测试您的软件。记住关键要点简单配置只需要指定架构和发行版性能优化使用GitHub Token缓存加速构建灵活扩展支持自定义基础镜像和高级Docker参数全面覆盖支持所有主流非x86架构现在就开始使用Run-On-Arch Action为您的项目构建真正跨平台的CI/CD流水线吧【免费下载链接】run-on-arch-actionA Github Action that executes jobs/commands on non-x86 cpu architectures (ARMv6, ARMv7, aarch64, s390x, ppc64le, riscv64) via QEMU项目地址: https://gitcode.com/gh_mirrors/ru/run-on-arch-action创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考