具有全栈 Amplify Gen 1 应用程序的团队工作流程
功能分支部署由前端和可选的后端环境组成。对前端进行构建并部署到全局内容分发网络 (CDN),而后端由 Amplify Studio 或 Amplify CLI 部署到 AWS。如需了解如何设置此部署场景,请参阅为应用程序构建后端。
Amplify Hosting 会在功能分支部署时持续部署后端资源,如 GraphQL API 和 Lambda 函数。您可以使用以下分支模型在 Amplify Hosting 上部署后端和前端。
功能分支工作流程
-
使用 Amplify Studio 创建 prod、test 和 dev 后端环境。
-
将生产后端映射到主分支。
-
将测试后端映射到开发分支。
-
团队成员可以使用设备后端环境来测试各个功能分支。
-
安装 Amplify CLI 以初始化一个新的 Amplify 项目。
npm install -g @aws-amplify/cli -
为项目初始化 prod 后端环境。如果您没有项目,请使用 create-react-app 或 Gatsby 等引导工具创建一个项目。
create-react-app next-unicorn cd next-unicorn amplify init ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: prod ... amplify push -
添加 test 和 dev 后端环境。
amplify env add ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: test ... amplify push amplify env add ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: dev ... amplify push -
将代码推送到您选择的 Git 存储库(在此示例中,我们假设您已推送到主存储库)。
git commit -am 'Added dev, test, and prod environments' git push origin main -
访问 AWS 管理控制台 中的 Amplify,查看您当前的后端环境。从导航位置向上导航一级,查看在后端环境选项卡中创建的所有后端环境的列表。
-
切换到前端环境选项卡,连接存储库提供程序和主分支。
-
在构建设置屏幕中,选择现有的后端环境,以便在主分支上设置持续部署。从列表中选择生产并将服务角色授予 Amplify。选择保存并部署。构建完成后,您将在 https://main.appid.amplifyapp.com 上获得主分支部署。
-
在 Amplify 中连接开发分支(此时假设开发和主分支相同)。选择 test 后端环境。
-
Amplify 现已设置完毕。您可以开始处理功能分支中的新功能。使用本地工作站的 dev 后端环境添加后端功能。
git checkout -b newinternet amplify env checkout dev amplify add api ... amplify push -
处理完功能后,提交代码,创建拉取请求以在内部进行审核。
git commit -am 'Decentralized internet v0.1' git push origin newinternet -
要预览更改的工作情况,请转到 Amplify 控制台并连接功能分支。注意:如果您的系统上安装了 AWS CLI(不是 Amplify CLI),则可以直接从终端连接分支。您可以通过转到 App settings (应用程序设置) > General (常规) > AppARN: arn:aws:amplify:<region>:<region>:apps/<appid> 找到您的 appid
aws amplify create-branch --app-id <appid> --branch-name <branchname> aws amplify start-job --app-id <appid> --branch-name <branchname> --job-type RELEASE -
您可以通过 https://newinternet.appid.amplifyapp.com 访问您的功能,与您的团队成员共享。如果一切正常,则将 PR 合并到开发分支。
git checkout develop git merge newinternet git push -
这将启动一个构建,它将通过 https://dev.appid.amplifyapp.com 上的分支部署更新 Amplify 中的后端以及前端。您可以与内部利益相关者共享此链接,以便他们可以查看新功能。
-
从 Git 和 Amplify 中删除您的功能分支,并从云中删除后端环境(您始终可以通过运行“amplify env checkout prod”并运行“amplify env add”来启动新的环境)。
git push origin --delete newinternet aws amplify delete-branch --app-id <appid> --branch-name <branchname> amplify env remove dev
GitFlow 工作流程
GitFlow 使用两个分支来记录项目的历史记录。主分支仅跟踪发布代码,开发分支用作新功能的集成分支。通过将新开发与已完成的工作隔离,GitFlow 简化了并行开发。在功能分支中完成新开发(例如功能和非紧急错误修复)。当开发人员确信代码已准备好发布时,功能分支将合并回集成开发分支。仅将来自发布分支和修补程序分支的合并提交到主分支(以修复紧急错误)。
下图显示了使用 GitFlow 的推荐设置。您可以按照上面功能分支工作流程部分中描述的相同过程进行操作。
每个开发人员的沙盒
-
团队中的每个开发人员在云中创建独立于其本地计算机的沙盒环境。这使开发人员能够彼此隔离地进行工作,不会覆盖其他团队成员的更改。
-
Amplify 中的每个分支都有自己的后端。这将确保 Amplify 使用 Git 存储库作为从其部署更改的单一信任源,而不是依赖团队中的开发人员手动将其后端或前端从本地计算机推送到生产。
-
安装 Amplify CLI 以初始化一个新的 Amplify 项目。
npm install -g @aws-amplify/cli -
为项目初始化 mary 后端环境。如果您没有项目,请使用 create-react-app 或 Gatsby 等引导工具创建一个项目。
cd next-unicorn amplify init ? Do you want to use an existing environment? (Y/n): n ? Enter a name for the environment: mary ... amplify push -
将代码推送到您选择的 Git 存储库(在此示例中,我们假设您已推送到主存储库)。
git commit -am 'Added mary sandbox' git push origin main -
将您的 repo > main 连接到 Amplify。
-
Amplify 控制台将检测 Amplify CLI 创建的后端环境。从下拉列表中选择创建新环境并将服务角色授予 Amplify。选择保存并部署。构建完成后,您将在 https://main.appid.amplifyapp.com 上获得主分支部署,一个新的后端环境会链接到该分支。
-
在 Amplify 中连接开发分支(此时假设开发和主分支相同),然后选择创建。