如何在CI中创建我的秘密awsconfiguration.json?

问题描述

我一直在使用AWS Amplify构建我的iOS应用程序的后端。

我在后端创建了4个DTAP环境,具有4种不同的配置,并使用运行脚本在编译时根据所选内容切换awsconfiguration.jsonamplifyconfiguration.json的正确版本方案。

由于这些自动生成配置文件包含许多秘密和API密钥,因此我将其与.gitignore中的源代码控制区分开,因为这将是一个失败点,并且我不想公开我的全部信息后端。

这在本地运行良好,但是当我在Bitrise上运行CI时,构建失败,因为这些配置文件不存在。我需要找到一种方法来将这些AWS和Amplify配置文件放入CI中,以便能够创建我的测试版本。

如果我过于谨慎,并且配置文件实际上可以保留在源代码管理中(即不是秘密),请告诉我。我真的不希望将机密设置为单独的环境变量,因为Amplify将为我需要的每个环境提供多个机密和终结点,并且让脚本将这些配置文件作为CI阶段构建起来实在太麻烦和复杂了。 / p>

我尝试过的事情:

  • 使用伪造的机密创建模拟配置文件,并在编译时将其复制进来-这失败了,因为编译时脚本仍尝试为实际环境复制不存在的配置文件
  • 使用单个环境变量作为Bitrise的秘密-这可能行得通,但是对于我的1-dev初创公司来说,维护它是一项艰巨的努力
  • 触摸伪造的配置文件进行复制-可以,但这意味着实际的AWS基础设施在测试版本中不起作用

对于任何人的想法,建议或经历,我将不胜感激。

谢谢

Jacob

解决方法

我建议使用通用文件存储和相关步骤下载它们。这会将它们注入到您的构建中,并且您可以将它们放置在编译项目之前所需的位置。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...