Skip to main content

Stack update policy

Abstract

Bitrise stacks are updated every week: some stacks are completely rebuilt while on others only certain cache archives are updated.

Stacks on bitrise.io are updated regularly, on a weekly basis. On some stacks only certain caches are updated and there are stacks which are completely rebuilt, on both macOS and Linux.

For more information on what tools are available on the different stacks, check out our relevant guide: Preinstalled tools on Bitrise stacks.

macOS stack updates

We divide our macOS stacks into categories based on OS, CPU architecture, and Xcode versions.

These stacks include multiple Xcode versions to ensure you always have the right Xcode version on demand and to reduce the time spent migrating between stacks when you need to use a different Xcode version.

For example, we have a stack for macOS 13 Ventura on M1, which includes Xcode 14.2, Xcode 14.1, and Xcode 14.0.

  • macOS Stable stacks are only updated with Xcode patch versions, Bitrise CLI related updates, dependency manager cache updates and with critical fixes. These stacks are designed so that if a build worked on the stack, the same build should run the same way as long as the stack is available.

  • The Xcode Edge stack is rebuilt regularly. It includes the latest stable release of Xcode, the same pre-installed tools as on the Stable stack, and the dependency manager cache updates. The stack uses the same scripts we use for creating new Xcode stacks.

Xcode beta versions

Bitrise supports Xcode beta versions. You can check out which specific Xcode versions your stack uses either on the Bitrise System Reports repository or by clicking on the link below the selected stack in the Workflow Editor.

Pinning an Xcode version

Whenever a new Xcode version comes out, we make sure it's available for our users within two working days. But we do not update existing stable stacks with a new Xcode version as that could potentially break builds: instead, we provide a new stack with the new version, and keep maintaining the older versions.

About dependency manager cache updates

All of the macOS stacks receive a dependency manager cache update (brew, cocoapods and bitrise CLI) every week. These cache updates do not change the pre-installed tool versions, they only update the package manager caches for faster dependency installs.

Available simulator runtimes on macOS stacks

Our policy for available simulator runtimes on macOS stacks is based on Apple's minimum requirements and supported SDKs.

Preinstalled tools on Bitrise stacks

If you are interested in the list of preinstalled tools, such as simulator runtimes on our stacks, you can find every available stack’s System Report on GitHub.

Each Xcode version has a list of supported simulators. We take the latest supported simulator runtime of each Xcode version on our stacks, and where compatible, we make the simulator runtime available on all stacks. We will also support the most recent version of the iOS simulator runtime prior to the oldest major version.

Example 1. Available iOS simulators on Bitrise stacks

Let's look at an example:

Xcode 12.5 has minimum requirements to work with iOS 10.3.1-14.5 simulator runtimes. The 14.5 simulator runtime is the latest version, so we make it available across all stacks. In this case, the 14.5 simulator is compatible with all our currently active Xcode stacks and so it is available on all those stacks.

Xcode 13.0 has minimum requirements to work with iOS 10.3.1-15.0 simulator runtimes. The 15.0 simulator runtime is the latest version, so just like for iOS 14.5, we make it available for all compatible stacks, which is all of them except for Xcode 12.5.

We continue going through all Xcode versions and taking the latest supported simulator runtime until the last Xcode version, which is Xcode 14.2. When we are done, we also take the most recent version of the iOS simulator runtime prior to the oldest major version. In this case, the oldest major version is iOS 14.5, and the most recent iOS simulator prior to that is iOS 13.7, so that version will also be available for all stacks.

This table illustrates which iOS simulator runtimes are available for which Xcode version on our macOS stacks:

Table 1. Available simulator runtimes for iOS (X = available)

Simulator

Xcode 14.2

Xcode 14.1

Xcode 14.0.1

Xcode 13.4.1

Xcode 13.3.1

Xcode 13.2.1

Xcode 13.1

Xcode 13.0

Xcode 12.5

iOS 16.2

X

iOS 16.1

X

iOS 16.0

X

X

X

iOS 15.5

X

X

X

X

iOS 15.4

X

X

X

X

X

iOS 15.2

X

X

X

X

X

X

iOS 15.0

X

X

X

X

X

X

X

X

iOS 14.5

X

X

X

X

X

X

X

X

X

iOS 14.4

iOS 14.3

iOS 14.2

iOS 14.1

iOS 14.0

iOS 13.7

X

X

X

X

X

X

X

X

X

iOS 13.6

iOS 13.5

iOS 13.4

iOS 13.2

iOS 13.1

iOS 13.0



The Android & Docker stacks

The Android / Linux stacks are prepared with docker, using multiple separate docker images built on top of each other.