尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

不用生成器也能跑:expo-react-native-cicd手动配置GitHub Actions构建流水线的关键步骤详解

不用生成器也能跑:expo-react-native-cicd手动配置GitHub Actions构建流水线的关键步骤详解 不用生成器也能跑expo-react-native-cicd手动配置GitHub Actions构建流水线的关键步骤详解【免费下载链接】expo-react-native-cicd Free alternative to Expo EAS builds! Complete CI/CD pipeline for React Native Expo apps using GitHub Actions. Save $100s monthly with unlimited builds, automated testing, and flexible deployment options.项目地址: https://gitcode.com/gh_mirrors/ex/expo-react-native-cicdexpo-react-native-cicd 是一个面向 React Native 与 Expo 应用的免费 GitHub Actions 构建流水线CI/CD工具它可以在 GitHub 云运行器上自动完成测试、构建与部署支持开发版 APK、生产版 APK 和 AAB 三种产物并可上传到 GitHub Releases、Google Drive、Zoho Drive 等存储是付费 EAS Build 计划的实用替代方案。本文带你从零手动配置这条构建流水线讲清 6 个关键步骤不依赖在线生成器5 分钟即可上手 为什么值得手动配置一次在线生成器虽然省事但手动配置一次之后你会完整掌握流水线的每个环节之后改触发条件、换存储目标、加测试步骤都心里有底对比项用生成器手动配置上手速度最快复制即用稍慢需要理解流程定制能力受限于表单选项完全自由想改哪行改哪行排查问题出错时不知如何下手每个 Job 都看得懂好定位学习收获较少完整理解 GitHub Actions 机制项目本身是开源的全部工作流模板都放在 examples/ 目录里共 1000 多个配置组合可以参考手动配置时随查随用。手动配置路线6 个关键步骤总览先给出全景图后面逐一展开准备好流水线依赖的 4 类项目文件把工作流文件放进.github/workflows/目录看懂流水线的 3 个 Job跳过检查 → 测试 → 构建部署在仓库设置里配置 GitHub Secrets唯一硬的部分触发第一次构建验证产物位置可选切换存储目标GitHub Releases 或云盘关键步骤一备齐流水线依赖的项目文件GitHub Actions 工作流本身不关心你的代码长什么样它只依赖项目根目录下的几类配置文件eas.json定义构建配置profile这是整个流水线的开关面板。参考 sample.eas.json其中需要 3 个 profiledevelopment开发调试包、production-apk侧载安装的生产 APK、production用于 Google Play 的 AAB 包格式app.json定义应用名称、版本号等流水线上传产物时会读取expo.version来组织文件夹参考 sample.app.jsonpackage.json工作流会自动把main入口修正为node_modules/expo/AppEntry.js这一步流水线已内置无需操心metro.config.js工作流会自动重写它以支持 SVG 图标解析同样无需手动处理项目自带的示例应用 example-todo-app 就是一个完整的可构建项目拿它练手最合适。这就是待办清单示例应用的图标资源关键步骤二把工作流文件放进 .github/workflows 目录这是手动配置的落盘动作只需两步从 generalized-workflow.yml 复制通用工作流模板适配任意云存储推荐新手起点在你的项目里新建.github/workflows/目录把文件放进去可改名为react-native-cicd.yml注意docs/README.md 特别提醒examples 目录里的文件只是模板在本仓库中不会运行必须复制到你自己的项目里才生效。放入后这条 GitHub Actions 构建流水线会获得 3 种触发方式push 触发推送main、master、develop分支自动构建且自动忽略纯文档改动**.md、docs/**等不会触发PR 触发拉取请求只跑测试不构建用于代码审查把关手动触发在 Actions 页面点 Run workflow可选构建类型all、dev、prod-apk、prod-aab关键步骤三看懂流水线的 3 个 Job打开工作流文件整个流程由 3 个 Job 串起来理解了它们你就掌握了 90% 的定制能力Job做什么关键点check-skip检查提交信息是否含[skip ci]含则整条流水线跳过方便提交小改动test依次跑 TypeScript 检查、ESLint、Prettier任一失败则中断不浪费构建资源build-and-deploy装依赖 → 全局安装 EAS CLI → 本地构建 → 上传产物只在 main/master 推送或手动触发时执行这里有一个核心机制值得新手记住流水线用的是eas build --local本地构建——在 GitHub 的 Ubuntu 运行器上直接编译而不是走 EAS 云端队列这正是免费无限次构建的实现方式产物直接落在运行器里再上传到你自己指定的地方。关键步骤四配置 GitHub Secrets唯一的硬骨头在仓库的Settings → Secrets and variables → Actions中添加密钥这是手动配置中最容易卡住的一步Secret 名称说明何时需要EXPO_TOKENExpo 账户访问令牌所有场景必配CLOUD_STORAGE_TYPE存储类型如drive、zoho用云盘存储时CLOUD_STORAGE_TOKEN云盘认证令牌用云盘存储时CLOUD_STORAGE_ROOT_ID云盘目标根文件夹 ID用云盘存储时如果你只想把产物传到GitHub Releases那么只需配置EXPO_TOKEN一个密钥直接使用 github-release-draft-pr-workflow.yml 即可它会创建草稿 Release 并自动生成变更日志。关键步骤五触发首次构建验证产物配置完成后推送一次代码或手动触发构建然后关注两件事日志逐段变绿正常节奏大约为 TypeScript 检查 2 分钟左右 → 三项测试共 5 分钟内 → 三种包构建各 8~10 分钟产物去向GitHub Artifacts 区保存 7 天随时下载用于快速验证云盘自动按App Builds/版本号-时间戳分文件夹归档文件名形如app-prod-1.0.0-202608211457.apk这就是流水线最终产出的应用长相——Android 自适应图标资源深色背景版本在构建后会作为应用资源打包进 APK/AAB关键步骤六可选按需切换存储目标跑通基础流程后可以按团队习惯替换部署环节项目都备好了现成模板GitHub Releases 派换用 github-release-draft-pr-workflow.yml产物附带在版本 Release 里发布前可人工审核Zoho Drive 派换用 zoho-drive-workflow.yml按版本和日期自动归档适合团队共享自定义存储派通用工作流走 rclone 通道理论上支持任何 rclone 能对接的网盘新手常见坑位提示忘了配 EXPO_TOKEN构建会在 EAS 登录环节直接失败检查第一个eas.json 缺 profile报错profile not found时对照 sample.eas.json 补齐 3 个 profile测试命令对不上模板默认yarn tsc、yarn lint、yarn format:check如果你的项目脚本名不同改 test Job 里的命令即可只想要部分构建用手动触发并选dev或prod-apk不必每次都全量构建关键文件速查表文件用途generalized-workflow.yml通用工作流模板手动配置首选起点sample.eas.json构建 profile 配置示例sample.app.json应用配置示例example-todo-app可构建的待办清单示例应用examples/README.md全部模板的说明与密钥清单docs/README.md项目文档与前置条件说明手动配置 expo-react-native-cicd 的 GitHub Actions 构建流水线本质上就是放文件 → 配密钥 → 看日志三件事。走通一遍之后你拥有了一条每月省下上百美元、可无限次构建、完全透明的移动应用 CI/CD 流水线 ✨【免费下载链接】expo-react-native-cicd Free alternative to Expo EAS builds! Complete CI/CD pipeline for React Native Expo apps using GitHub Actions. Save $100s monthly with unlimited builds, automated testing, and flexible deployment options.项目地址: https://gitcode.com/gh_mirrors/ex/expo-react-native-cicd创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表