Shashikant86.XcodeServer
Xcode-Server: Ansible-Bereitstellung für iOS Continuous Integration
=========
Diese Rolle kann verwendet werden, um den iOS Continuous Integration Service auf macOS mit Apples eigenem CI-Server, auch bekannt als Xcode Server, einzurichten. Diese Rolle kann auch für die Einrichtung einer lokalen Entwicklungsumgebung für iOS-Entwickler verwendet werden. Sie enthält alle erforderlichen Tools für iOS-Entwickler wie Xcode, Swift Fastlane, Carthage, Cocoapods und viele Homebrew-Pakete. Außerdem haben Sie die volle Kontrolle über die Konfiguration Ihrer Umgebung mit Variablen. Die Xcode-Installation benötigt eine vorher heruntergeladene XIP-Datei.
Anforderungen
- macOS High Sierra
- Xcode 9 +
Xcode-Versionen vor 9 werden von dieser Rolle nicht unterstützt.
Xcode-Installationsanforderungen
Es gibt mehrere Möglichkeiten, wie diese Rolle Xcode installieren kann. Wählen Sie die, die für Sie geeignet ist:
- Xcode XIP im
files
-Verzeichnis des Playbooks
Sie sollten eine xip
-Datei im files/
-Verzeichnis Ihres Playbooks ablegen oder die XIP-Datei in das $HOME-Verzeichnis ~/Xcode_9.1.xip
legen. Geben Sie die Variable xcode_src
mit der Version von Xcode an, die Sie installieren möchten.
xcode_src: Xcode_9.1.xip
Was in dieser Rolle enthalten ist:
Diese Rolle enthält folgende Softwarepakete zur Bereitstellung des iOS Continuous Integration Servers:
- Xcode 9+ Installation
- Xcode Server-Dienst
- macOS-Standardeinstellungen: Steuert Standardeinstellungen und Softwareupdates
- Homebrew: Paketmanager für macOS zur Installation von Paketen wie Carthage oder Cask-Anwendungen (optional)
- RVM und angepasste Ruby-Versionen für vorinstallierte Gems wie Bundler, Fastlane, Cocoapods, Xcpretty (optional)
Sie können Ihr eigenes Playbook anpassen, um die Standards zu überschreiben und Ihr eigenes Playbook zu erstellen.
Rollenvariablen:
Diese Rolle hat viele Variablen, die zur Konfiguration Ihres eigenen Playbooks verwendet werden können. Bitte beziehen Sie sich auf defaults/main.yml
für die Liste aller Variablen. Sie können die Variablen in defaults/main.yml
überschreiben, um Ihre eigene Konfiguration vorzunehmen. Die Hauptvariablen, die Sie ändern sollten, sind:
xcode_src: Xcode_{Ihre_Version}.xip
xcode_server_user: {Ihr_XcodeServer_Benutzer}
ansible_ssh_user: {Ihr_ansible_ssh_Benutzer}
So verwenden Sie diese Rolle:
Stellen Sie sich vor, Sie haben einen neuen Mac mit einem neuen macOS. Sie können alle Xcode-Server für CI einrichten, indem Sie ein Playbook für diese Rolle erstellen. Sie können die Konfigurationsvariablen nach Ihren Bedürfnissen einrichten.
Angenommen, Sie haben Ansible installiert, können wir die Rolle mit folgendem Befehl herunterladen:
$ ansible-galaxy install Shashikant86.XcodeServer
Nun müssen wir unser eigenes Playbook für diese Rolle erstellen, indem wir Variablen festlegen. Wir können die Datei defaults/main.yml
hier verwenden. Das Beispiel-Playbook sieht wie folgt aus:
Beispiel-Playbook
Erstellen Sie ein neues Verzeichnis namens XcodeServer
, erstellen Sie auch das Verzeichnis XcodeServer/files
und legen Sie die Xcode XIP-Datei im files
-Verzeichnis ab.
$ mkdir xcode_server
$ mkdir XcodeServer/files
$ touch xcs_playbook.yml
Erstellen Sie die xcs_playbook.yml
wie folgt im Verzeichnis 'XcodeServer' mit folgendem Inhalt, um das Playbook lokal auszuführen. Sie können localhost
durch andere Hosts ersetzen.
---
- hosts: localhost
connection: local
vars:
clean_xcode: yes
clean_rvm: yes
clean_homebrew: yes
configure_xcode: yes
configure_xcodeserver: yes
configure_macos_defaults: yes
configure_ruby_rvm: yes
configure_homebrew: yes
xcode_src: Xcode_9.1.xip
xcode_server_user: shashi
ansible_ssh_user: shashi
ruby_version: 2.4.0
rubygems_packages_to_install:
- bundler
- xcpretty
macos_sleep_options:
- systemsetup -setsleep Never
- systemsetup -setharddisksleep Never
- systemsetup -setcomputersleep Never
macos_animation_options:
- defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false
- defaults write NSGlobalDomain NSWindowResizeTime -float 0.001
- defaults write com.apple.dock expose-animation-duration -int 0
- defaults write com.apple.dock launchanim -bool false
macos_software_autoupdates:
- softwareupdate --schedule off
homebrew_use_brewfile: true
homebrew_brewfile_dir: '~'
homebrew_repo: https://github.com/Homebrew/brew
homebrew_prefix: /usr/local
homebrew_install_path: "{{ homebrew_prefix }}/Homebrew"
homebrew_brew_bin_path: /usr/local/bin
homebrew_upgrade_all_packages: no
homebrew_installed_packages:
- autoconf
- bash-completion
- git
- carthage
- gpg
- boost
- cmake
- ssh-copy-id
- openssl
- wget
- curl
homebrew_taps:
- homebrew/core
- caskroom/cask
- homebrew/binary
- homebrew/dupes
- homebrew/versions
homebrew_cask_apps:
- postman
roles:
- Shashikant86.XcodeServer
Ändern Sie ansible_ssh_user
und xcode_server_user
mit Ihrem Benutzernamen und passen Sie die Variablen nach Ihren Bedürfnissen an. Führen Sie nun dieses Playbook aus:
$ ansible-playbook xcs_playbook.yml
Beobachten Sie, wie Ihre Mac Mini-Server für iOS Continuous Integration eingerichtet werden.
Einrichtung von Continuous Integration mit Travis
Wir können diese Rolle auf TravisCI testen, indem wir die Xcode-Konfiguration deaktivieren, da TravisCI eigene Xcode-Images hat. Wir können alle anderen Dinge auf TravisCI testen. Sie können die TravisCI-Konfiguration in der .travis.yml
und das Playbook/Config im tests
-Verzeichnis sehen. Sie können die TravisCI-Ausgaben hier ansehen.
Abhängigkeiten
Keine
Lizenz
MIT
Autoreninformation
Shashikant Jagtap
Xcode Server Setup macOS for Continuous Integration using Apple Xcode Server
ansible-galaxy install Shashikant86.XcodeServer