osx_ci
Ansible Роль: OSX-CI
Устанавливает и настраивает программные инструменты, необходимые для сборки и развертывания приложений для OSX/iOS. Настроенная Mac-машина может быть использована в качестве агента Jenkins.
Роль создает пользователя ci
, который может использоваться для выполнения сборок на Mac-машине. Настраивается возможность удаленного входа через ssh для этого пользователя.
Также устанавливаются:
- Homebrew
- Node.js 10 LTS
- Java 8 - требование для Jenkins. Установив Java 8, машинa OSX может легко стать агентом Jenkins.
- fastlane
- CocoaPods
Требования
Роль ожидает, что инструменты командной строки Xcode будут установлены на целевой машине. Все доступные версии можно найти на странице загрузок Apple. Вы также можете установить инструменты командной строки Xcode через терминал, используя:
xcode-select --install
Учтите, что эта команда требует ввода от пользователя, поэтому вы не можете выполнить ее удаленно (через ssh).
Поскольку роли нужно настроить авторизованный ssh-ключ для пользователя ci, который позволяет удаленный вход, необходимо заранее сгенерировать открытый ssh-ключ и предоставить его роли.
Открытый ssh-ключ должен находиться на машине, которая исполняет
роль.
Переменные роли
Переменные роли и их значения по умолчанию указаны ниже.
Вы можете найти все значения по умолчанию в defaults/main.yml
ci_user: ci_user
ci_user_uid: 5013
ci_user_group: ci_user
Имя пользователя ci
, uid и группа для создания.
ci_user_public_key_location:
Местоположение открытого ssh-ключа, который будет добавлен в авторизованные ключи для пользователя ci
. Это позволит входить удаленно через ssh с этим пользователем.
ci_user_default_keychain: login.keychain
ci_user_default_keychain_password:
Имя и пароль для ключницы по умолчанию, которая будет создана для пользователя ci
.
cask_packages: ['java8']
Пакеты brew cask, которые будут установлены.
ruby_gems: ['fastlane']
Ruby gems, которые будут установлены глобально.
homebrew_packages:
Список дополнительных пакетов brew
, которые будут установлены.
Зависимости
Отсутствуют.
Пример плейбука
- hosts: localhost
vars:
homebrew_packages: ['git']
ci_user_public_key_location: '/path/to/public_key'
ci_user_default_keychain_password: 'keychain_pass'
roles:
- osx-ci
Лицензия
Информация об авторе
Эта роль была создана в 2019 году компанией MacStadium, Inc.
Ответственные лица
Forked Ansible role that installs common CI tools on OSX with arm64/M1 support
ansible-galaxy install nick-fields/ansible-role-osx-ci