osx_ci
Ansible Role: OSX-CI
Installs and configures software tools needed for building & deploying OSX/iOS applications. The configured Mac machine can be used as a Jenkins agent.
The role creates a ci user
that can be used to run builds on the Mac machine. It configures the user to be able to log remotely via ssh.
It also installs:
- Homebrew
- Node.js 10 LTS
- Java 8 - Jenkins requirement. By installing Java 8, the OSX machine can be easily become a Jenkins agent.
- fastlane
- CocoaPods
Requirements
The role expects Xcode Command Line Tools to be installed on the target machine. You can find all available versions in the Apple Downloads Page. You can also install the Xcode Command Line Tools via terminal using:
xcode-select --install
Note that this command requires user input, so you cannot execute it remotely (via ssh).
Because the role needs to set up an authorized ssh key for the ci user that enables remote login, a public ssh key needs to be pre-generated and provided to the role.
The ssh public key needs to be on the machine that executes
the role.
Role Variables
Role variables and their default values are listed below.
You can find all default variables in defaults/main.yml
ci_user: ci_user
ci_user_uid: 5013
ci_user_group: ci_user
The ci user
name, uid and group to be created.
ci_user_public_key_location:
The location of the ssh public key that will be added to the authorized keys for the ci user
. This will allow remote login with ssh with that user.
ci_user_default_keychain: login.keychain
ci_user_default_keychain_password:
The name and the password of the default keychain to be created for the ci user
.
cask_packages: ['java8']
The brew cask packages to be installed.
ruby_gems: ['fastlane']
The ruby gems to be installed globally.
homebrew_packages:
A list of extra 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.