【发布时间】:2020-10-02 11:12:49
【问题描述】:
我一直在使用 AWS amplify 构建我的 iOS 应用程序的后端。
我在后端创建了 4 个 DTAP 环境,具有 4 种不同的配置,并使用运行脚本根据所选方案在编译时切换 awsconfiguration.json 和 amplifyconfiguration.json 的正确版本。
由于这些自动生成的配置文件包含许多秘密和 API 密钥,我将它们远离我的 .gitignore 中的源代码控制,因为这将是一个失败点,我不想暴露我的全部这样后端。
这在本地运行良好,但是当我在 Bitrise 上运行我的 CI 时,构建失败,因为这些配置文件不存在。我需要找到一种方法将这些 AWS 和 Amplify 配置文件导入 CI,以便能够创建我的测试版本。
如果我过于谨慎,而配置文件实际上可以保存在源代码管理中(即不是秘密),请告诉我。我真的不想将机密设置为单独的环境变量,因为 Amplify 将为我需要的每个环境提供多个机密和端点,并且将这些配置文件构建为 CI 阶段的脚本感觉太混乱和复杂了。
我尝试过的事情:
- 使用在编译时复制的虚假机密创建模拟配置文件 - 这会失败,因为编译时脚本仍会尝试为真实环境复制不存在的配置文件
- 在 Bitrise 中使用单个环境变量作为机密 - 这可能会奏效,但对于我的 1-dev 初创公司来说,维护起来将是一项巨大的努力
- 触摸要复制的虚假配置文件 - 这可行,但意味着实际的 AWS 基础设施在测试构建中不起作用
如果有人有任何想法、建议或经验,我将不胜感激。
谢谢
雅各布
【问题讨论】:
标签: ios amazon-web-services continuous-integration aws-amplify bitrise