Skip to content

macstadium/ansible-role-osx-ci

Repository files navigation

Ansible Role: OSX-CI

GPL-3.0 licensed Build Status

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:

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

GPL-3.0

Author Information

This role was created in 2019 by MacStadium, Inc.

Maintainer(s)