howto use a mojave vm vbox on a mac 1. via apple store, download mojave installer 2. sudo gem install macinbox 3. sudo macinbox -n gitlab-runner-1 --disk 50G --memory 8192 --cpu 8 --no-hidpi --short videolanci --full videolanci --password videolanci --verbose --box-format virtualbox 4. in virtualbox ui, import the machine from .vagrant.d/boxes/gitlab-runner-1/10.14.4/virtualbox/box.ovf 5. boot the machine 6. DO NOT (2020-01) install xcode cli tools touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress; PROD=$(softwareupdate -l | grep "\*.*Command Line" | head -n 1 | awk -F"*" '{print $2}' | sed -e 's/^ *//' | tr -d '\n') softwareupdate -i "$PROD" --verbose rm /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress 7. install xcode from appstore xcode-select -s /Applications/Xcode.app/Contents/Developer/ in xcode, go window - simulators - install ios 12, 13, tvos 12, 13 11 8. fetch the tools-osx.sh from http://thre.sh/stuff/tools-osx.sh to install VLC extras/tools to speed up compilation 9. chmod +x ./tools-osx.sh && ./tools-osx.sh 10. install jdk from https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 8u202 works 11. install python3 from python.org 12. install nasm from nasm.us > 2.14 13. install gitlab-runner, register as shell 12. in vbox, use "macosx 64bit" as a vm type 13. in vbox, set cores == 4 for a vm 14. for gitlab-runner, specify disable_snapshots = false for one time to create a snapshot, run a job, then change to true - so gitlab runner will create a VM from a snapshot that is already there and will destroy the VM afterwards 15. When you need to update a VM, delete snapshots, run the VM image, update stuff, stop the VM and re-do the 14. disable_snaphots dance.