Git Product home page Git Product logo

osx-image-bootstrap's Introduction

osx-image-bootstrap

This repository contains the scripts and instructions for setting up an OS X VM like the way the Travis CI OS X build environments are provisioned.

Please note that these instructions were written for the environment that Travis CI runs OS X VMs in (currently vSphere), so you may have to tweak the steps quite a bit if you're trying to set up a VM elsewhere.

Creating a vanilla box

This should generally be re-done whenever a new "major" version of OS X comes out (for example OS X 10.9 to OS X 10.10).

  1. Create a new virtual machine in vSphere. 1 CPU, 4096 MB memory, 50 GiB disk space, attach the OS X install ISO from the datastore (current install ISO is 10.9, we'll upgrade to 10.10 later).
  2. Power on the VM, and open the console.
  3. "Use English for the main language".
  4. Open "Disk Utility" in the "Utilities" menu at the top of the screen.
  5. Select the main disk (for me it's "53.69 VMware Virtual SATA Hard Drive Media") in the left sidebar, then select the "Erase" tab. Make sure the format is set to "Mac OS Extended (journaled)" and type "Macintosh HD" in the name ("Macintosh HD" is the standard name for the "main system disk" on most Macs). Click "Erase". This sets up the partition table and adds a partition to the disk. Close Disk Utility to go back to the installer.
  6. Select "Continue" in the installer, then select the "Macintosh HD" disk you just created as the install disk.
  7. Click "Install". Go have lunch (this step usually takes 20-30 minutes).
  8. Select "United States" as the region.
  9. Select "U.S." as the keyboard layout.
  10. Select "Don't transfer any information now" in the "Transfer information to this Mac" dialogue.
  11. Skip signing in with an Apple ID.
  12. Accept the the OS X T&C / Software License Agreement.
  13. Create an account with the following settings:
  • Full name: Travis CI
  • Account name: travis
  • Password: travis
  • Do not require password to unlock screen
  • Uncheck "Set time zone based on current location"
  • Uncheck "Send Diagnostics & Usage data to Apple"
  1. Select "UTC - United Kingdom" as the location.
  2. Don't register the Mac.
  3. Update to the latest version of OS X in the App Store.
  4. Enable "Remote Login" in the Sharing Preference Pane. This enables SSH.
  5. Run xcode-select --install and work through the dialog boxes that pop up
  6. Disable automatic updates in the App Store preference pane
  7. Disable every sleep option in the Energy Saver preference pane
  8. Make sure automatic login is enabled in the Users and Groups preference pane (under Login Options).
  9. Disable the Screen Saver
  10. Check in Spotlight that indexing isn't running (wait until it's finished if it is).
  11. Power off the VM and save this as a new "vanilla image".

Creating a base box

  1. Clone a vanilla image with the right version of OS X.
  2. Download and install Xcode. Open it and download all the simulators.
  3. Run DevToolsSecurity -enable.
  4. Open the iOS simulator from Xcode โ†’ Open Developer Tools โ†’ iOS Simulator
  5. Create a test project, build and run unit tests. Then delete the test project.
  6. Give travis no-password sudo access by adding travis ALL=(ALL) NOPASSWD: ALL to /etc/sudoers (use visudo to prevent breaking sudo)
  7. Run bootstrap.sh in this repository.
  8. Run the RubyMotion installer in /opt/homebrew-cask/Caskroom/rubymotion/latest/RubyMotion\ Installer.app

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.