macstadium.osx_ci
Ansible Role: OSX-CI
This role sets up and configures software tools needed for building and deploying OSX/iOS applications. The configured Mac computer can be used as a Jenkins agent.
The role creates a ci user
to run builds on the Mac machine and allows this user to log in remotely using SSH. It installs the following tools:
- Homebrew
- Node.js 10 LTS
- Java 8 - Required for Jenkins. Installing Java 8 allows the OSX machine to function as a Jenkins agent.
- fastlane
- CocoaPods
Requirements
The role requires Xcode Command Line Tools to be installed on the target machine. You can download them from the Apple Downloads Page. Alternatively, you can install them through the terminal using:
xcode-select --install
Note that this command requires user interaction, so it cannot be run remotely via SSH.
Since the role needs to set up an authorized SSH key for the ci user
to allow remote logins, a public SSH key must be generated in advance and supplied to the role. The public key should be located on the machine executing the role.
Role Variables
Here are the role variables and their default values. All default variables can be found in defaults/main.yml
.
ci_user: ci_user
ci_user_uid: 5013
ci_user_group: ci_user
This defines the ci user
name, UID, and group that will be created.
ci_user_public_key_location:
The location of the public SSH key that will be added to the ci user
's authorized keys, allowing remote SSH logins.
ci_user_default_keychain: login.keychain
ci_user_default_keychain_password:
The name and password of the default keychain for the ci user
.
cask_packages: ['java8']
The brew cask packages that will be installed.
ruby_gems: ['fastlane']
The ruby gems that will be installed globally.
homebrew_packages:
A list of additional brew
packages to be installed.
Dependencies
None.
Example Playbook
- 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
License
Author Information
This role was created in 2019 by MacStadium, Inc.
Maintainer(s)
Ansible role that installs common CI tools on OSX
ansible-galaxy install macstadium.osx_ci