# CI/CD 架构 ## 流水线概述 P2Pool 构建系统使用 Gitea Actions 实现自动化构建、测试和发布流程。 ## 构建矩阵 ### 架构支持 - amd64 - arm64 ### 发行版本 - Ubuntu - Alpine Linux ### 构建组合 - 总计 4 种构建变体: 1. amd64 + Ubuntu 2. amd64 + Alpine 3. arm64 + Ubuntu 4. arm64 + Alpine ## 流水线触发条件 ### 自动触发 - 推送到 `main` 和 `develop` 分支 - 创建 Git 标签(发布版本) ## 流水线阶段 ### 构建与测试阶段 ```yaml jobs: build-and-test: strategy: matrix: arch: [amd64, arm64] distro: [ubuntu, alpine] # 使用原生架构的 runner runs-on: >- ${{ matrix.arch == 'amd64' && 'ubuntu-latest-amd64' || 'ubuntu-latest-arm64' }} ``` ### 关键步骤 1. 设置 Docker Buildx 2. 构建二进制文件 3. 打包为 tar.gz 4. 对于 Ubuntu:创建 Debian 包 5. 上传构建产物 ### 发布阶段 - 下载所有构建产物 - 上传到 Gitea 通用包仓库 - 上传 Debian 包 - 创建发布版本 - 附加下载链接 ## 性能特点 ### 原生架构构建 - 比 QEMU 跨架构编译快 3-10 倍 - 构建稳定性高 - 需要专用的 amd64 和 arm64 runner ### 编译并行度 - amd64:使用一半 CPU 核心 - arm64:使用全部 CPU 核心 - 跨架构编译:限制为 2 个并行作业 ## 关键配置文件 - [.gitea/workflows/ci.yaml](../../.gitea/workflows/ci.yaml):主要 CI/CD 配置 ## 安全与性能平衡 - 限制并行编译作业数 - 使用原生架构 runner - 避免使用 QEMU 虚拟化