Как протестировать приложение Android на Circle CI с помощью плагина Google Services Gradle

Я разрабатываю приложение для Android с помощью плагина Google Services Gradle (он необходим для Firebase), а для плагина требуется google-services.json.

Я думаю, что файл json не должен находиться под контролем git, потому что в нем есть некоторые значения, которые должны быть скрыты (например, api_key), но они нужны Circle CI.

Если google-services.json может искать переменные среды, проблема может быть решена (значения скрыты в репозитории git, а Circle CI может получать значения из переменных среды).
Но я не могу найти механизм поиска среды. переменные из google-services.json.

У меня есть три вопроса.

1) Следует ли действительно игнорировать google-services.json из VCS?
2) Есть ли в подключаемом модуле Google Services Gradle механизм поиска переменных среды из google-services.json?
3) Существуют ли другие способы ссылки google-services.json из Circle CI?


person niboshiporipori    schedule 21.08.2016    source источник


Ответы (1)


1) Да, должен — он содержит конфиденциальную информацию, такую ​​как ваш ключ API.

2) я так не думаю

3) Вы можете использовать тот же подход, что и в https://circleci.com/docs/2.0/google-auth/

  • закодируйте свой google-services.json в base64. Обязательно удалите пробелы из закодированной строки.
  • поместите это в переменную среды в настройках проекта Circle CI (я назвал ее GOOGLE_SERVICES)
  • в вашем circle.yml декодируйте эту переменную в файл google-services.json в каталоге вашего приложения. В моем случае я использую

    echo $GOOGLE_SERVICES | base64 --decode > ~/${HOME}/app/google-services.json

person Lukáš Kutner    schedule 23.11.2016
comment
echo $GOOGLE_SERVICES | base64 -di > app/google-services.json работал на меня - person alisonthemonster; 14.02.2019
comment
Я исправил ссылку. - person Lukáš Kutner; 22.10.2019