On bitrise.io, we have
Linux virtual machines hosted for your builds.
You can select from multiple stacks, each with its own list of preinstalled tool versions.
Read more about available stacks and stack prepare types in the Available Stacks docs.
The user which is used for the builds is configured with passwordless sudo enabled, this way you are able to install all the extra things you need for your builds and for other automation. If a tool is not preinstalled on your Stack of choice, you can install it yourself - see the Install Any Additional Tool guide.
Every build runs in its own virtual machine and the virtual machine is rolled back to a saved state, the "base box" state, after the build is finished. This way your builds are always protected by changes made by others and by your previous builds and you can use a stable environment to define your build workflow, since no state persists between builds.
For more information about Build/Code Security, see the Code Security guide.
You can find the macOS base box setup guide and automation scripts we use for building our macOS virtual machine base boxes in our OS X Box Bootstrap repository. The repository includes every script we use for preparing these base virtual machine images.
For our Linux machines, check out the Bitrise Base Docker Image's repository.
You can always check our current configurations in the system reports folder of our main repository, to see what tools and which versions are preinstalled.
These reports have been generated by the scripts, linked in the first lines of the report.
The repositories used for our virtual machine preparation are open source, and pull requests are welcome. If you'd like to have a tool pre-installed in our machines, feel free to add your changes and they will be included in the related Stack(s) the next time the Stack is updated.
Virtual machine updates⚓
Updates are always announced in the #changelog category of discuss.bitrise.io and can be seen on your Bitrise Dashboard. We will also send you a Platform Updates notification about significant changes, unless you disable this feature under your account settings page.
In general we do stack updates once a week, during the weekends.
Minor patches might be applied during the week in case we detect an issue with the current virtual machine environment. These patches do not change any pre-installed tool version, unless it's really necessary.
We test every stack change as much as we can before it is released to avoid any changes / updates during the week.
iOS Simulator version & SDK support⚓
All the iOS Simulator versions which can be installed through Xcode -> Preferences -> Components are installed and available.