微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在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

解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?