Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/macstadium/ansible-role-osx-ci
Ansible Role - OSX CI
https://github.com/macstadium/ansible-role-osx-ci
ansible ansible-role ci osx
Last synced: 29 days ago
JSON representation
Ansible Role - OSX CI
- Host: GitHub
- URL: https://github.com/macstadium/ansible-role-osx-ci
- Owner: macstadium
- License: gpl-3.0
- Created: 2019-03-07T12:24:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-03-08T15:16:14.000Z (almost 4 years ago)
- Last Synced: 2024-08-10T14:14:45.022Z (5 months ago)
- Topics: ansible, ansible-role, ci, osx
- Language: Python
- Size: 50.8 KB
- Stars: 25
- Watchers: 20
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ansible Role: OSX-CI
![GPL-3.0 licensed][badge-license]
[![Build Status](https://github.com/macstadium/ansible-role-osx-ci/workflows/Publish%20role/badge.svg?branch=master)](https://github.com/macstadium/ansible-role-osx-ci/actions?query=workflow%3A%22Publish+role%22+branch%3Amaster)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][homebrew]
* [Node.js 10 LTS][node10]
* [Java 8][java8] - Jenkins requirement. By installing Java 8, the OSX machine can be easily become a Jenkins agent.
* [fastlane][fastlane]
* [CocoaPods][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][apple-downloads].
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`](defaults/main.yml)ci_user: ci_user
ci_user_uid: 5013
ci_user_group: ci_userThe `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][brew-cask] packages to be installed.
ruby_gems: ['fastlane']
The [ruby gems][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][link-license]
## Author Information
This role was created in 2019 by [MacStadium, Inc][macstadium].
#### Maintainer(s)
- [Ivan Spasov](https://github.com/ispasov)
[macstadium]: https://www.macstadium.com/
[homebrew]: https://brew.sh/
[node10]: https://nodejs.org/en/blog/release/v10.13.0/
[java8]: https://www.oracle.com/technetwork/java/javase/overview/java8-2100321.html
[fastlane]: https://fastlane.tools/
[cocoapods]: https://cocoapods.org/
[brew-cask]: https://github.com/Homebrew/homebrew-cask
[ruby-gems]: https://rubygems.org/
[badge-license]: https://img.shields.io/badge/License-GPL3-green.svg
[link-license]: https://raw.githubusercontent.com/macstadium/ansible-role-osx-ci/master/LICENSE
[apple-downloads]: https://developer.apple.com/download/more/