Я использую AWS ampify для создания серверной части своего приложения для iOS.
Я создал 4 среды DTAP в бэкэнде с 4 различными конфигурациями и использую сценарий выполнения для переключения на правильные версии awsconfiguration.json
и amplifyconfiguration.json
во время компиляции на основе выбранной схемы.
Поскольку эти автоматически сгенерированные файлы конфигурации содержат ряд секретов и ключей API, я держу их подальше от системы управления версиями в моем .gitignore, поскольку это было бы точкой отказа, и я не хочу раскрывать весь свой бэкэнд в этом способ.
Локально это работает нормально, но когда я запускаю свой CI на Bitrise, сборка завершается ошибкой, поскольку этих файлов конфигурации нет. Мне нужно найти способ передать эти файлы конфигурации AWS и Amplify в CI, чтобы иметь возможность создавать свои тестовые сборки.
Если я проявляю чрезмерную осторожность и файлы конфигурации действительно можно хранить в системе контроля версий (т.е. не в секрете), дайте мне знать. Я действительно не хочу настраивать секреты как отдельные переменные среды, поскольку Amplify будет иметь несколько секретов и конечных точек для каждой среды, которая мне нужна, и мне кажется слишком запутанным и сложным иметь сценарий, создающий эти файлы конфигурации в качестве этапа CI.
Вещи, которые я пробовал:
- Создание фиктивных файлов конфигурации с поддельными секретами, которые копируются во время компиляции - это не удается, потому что скрипт времени компиляции все еще пытается скопировать несуществующие файлы конфигурации для реальной среды
- Использование индивидуальных переменных среды в качестве секретов в Bitrise - это, вероятно, сработает, но для моего стартапа из одного разработчика потребуется огромная работа по поддержанию
- Прикосновение к поддельному файлу конфигурации для копирования - это работает, но означает, что фактическая инфраструктура AWS не работает в тестовых сборках.
Я буду благодарен за любые мысли, предложения или опыт, которые у кого-то есть.
Спасибо
Иаков