- Home
- Builds
- Configuring build settings
- Setting the stack for your builds
Setting the stack for your builds
The build stack indicates the virtual machine version that Bitrise will use to run your build. You can set the stack for all your builds, or you can set Workflow-specific stacks, either in the Workflow Editor or in the bitrise.yml file.
The build stack indicates the virtual machine version that we will use to run your build. You can set the stack for all your builds, or you can set Workflow-specific stacks.
Changing machine types using the API
You can also change build machine types for all apps owned by a single user or Workspace using the API: Changing machine types in all apps at the same time.
Setting the stack in the Workflow Editor
The simplest way to configure the build stack is in the Workflow Editor. You can set both the default stack and Workflow-specific stacks.
Setting the default stack
The default stack of your app is the stack that is used if you haven't set a specific stack for a Workflow.
Project type
Note that if you change the project type on the app's Settings tab to a type that isn't compatible with your selected default stack, we'll automatically change the stack to a compatible one.
-
Log in to Bitrise and select Bitrise CI on the left, then select your project.
-
Click the Workflows button on the main page.
-
On the left, select Stacks & Machines.
-
In the Default Stack section, open the dropdown menu and select the stack you need.
-
Click Save changes in the top right corner.
Setting a Workflow-specific stack
When you set a stack for a Workflow, that Workflow will always run on that stack, regardless of the default stack.
-
Log in to Bitrise and select Bitrise CI on the left, then select your project.
-
Click the Workflows button on the main page.
-
On the left, select Stacks & Machines.
-
Scroll down to find the Workflow you need.
-
Select a stack.
-
Click Save changes in the top right corner.
Setting the machine type in the Workflow Editor
You can define the machine type you want to use for your build in the Workflow Editor. The available machine types depend on the type of stack you use: Table 1, “Bitrise build machine types”.
To set the machine type:
-
Log in to Bitrise and select Bitrise CI on the left, then select your project.
-
Click the Workflows button on the main page.
-
On the left, select Stacks & Machines.
-
In the Default Stack section, find the Machine type for the default stack section and choose a machine type.
-
Optionally, choose a Workflow-specific machine type for any Workflow that has a Workflow-specific stack set.
Setting the stack in the bitrise.yml file
You can set both the default stack and Workflow-specific tasks in the bitrise.yml
file of your app. Use the meta
field with the appropriate stack ID:
meta: bitrise.io: stack: osx-xcode-13.1.x
This is particularly useful if you keep your bitrise.yml
file stored in your app's
repository.
Stack IDs
You can find the stack IDs on the top of each stack report: Bitrise stack reports. Alternatively, you can set a stack in the Workflow Editor and then check out the ID on the bitrise.yml tab, by
finding the meta
field.
The stack reports also show every pre-installed tool that is available on the stack.
Setting the default stack in the bitrise.yml
The default stack of your app is the stack that is used if you haven't set a specific stack for a Workflow.
-
Open your app's
bitrise.yml
file. -
Add a
meta
entry outside theworkflows
property or at the end of yourbitrise.yml
file:meta: bitrise.io: stack:
Make sure you use double indentation.
-
Add the stack ID.
You can find the stack IDs on the system reports page: the filenames without the
.log
extension are the stack IDs.meta: bitrise.io: stack: osx-xcode-13.1.x
Setting Workflow-specific stacks in the bitrise.yml
When you set a stack for a Workflow, that Workflow will always run on that stack, regardless of the default stack.
-
Open your app's
bitrise.yml
file. -
Find the
workflows
property and find the name of the Workflow you need within. -
Add a
meta
entry under the Workflow itself:workflows: deploy: meta: bitrise.io: stack:
-
Add the stack ID.
You can find the stack IDs on the top of each stack report page.
workflows: deploy: meta: bitrise.io: stack: osx-xcode-13.1.x
Setting the machine type in the bitrise.yml file
You can also define the machine type you want to use for your build in the bitrise.yml
of your app. Machine type refers to the hardware resources used in your build; for example, an Elite machine has more CPU cores and available RAM than a Standard machine.
To set the machine type in the bitrise.yml
file, you need to use the machine_type_id
attribute in a meta
entry:
Available machine IDs
You can find the available machine type IDs here: Build machine types.
-
Open your app's
bitrise.yml
file. -
Find the
workflows
property and find the name of the Workflow you need within. -
Add a
meta
entry:# setting an 8-core Gen2 machine for an Xcode stack as the default machine type of the app: meta: bitrise.io: machine_type_id: g2.8core # setting a 12-core Gen2 machine as a Workflow-specific machine type workflows: deploy: meta: bitrise.io: machine_type_id: g2.12core
Build machine types
Bitrise offers multiple build machines with different specifications and credit costs. You can choose between them based on your needs.
Bitrise offers multiple build machines with different specifications and credit costs. You can choose between them based on your needs.
You can track how much time you spent building your apps on each machine type with Insights: Utilization metrics.
Machine availability by subscription plan
Not all machines are available on all subscription plans. Visit the pricing page to find out which machines are available on your plan!
Operating system |
Machine type name |
CPU |
RAM |
Credit cost per minute |
Machine type ID for YAML configuration |
---|---|---|---|---|---|
macOS |
M2 Pro Medium |
4 CPU @3.49GHz |
6 GB |
3/min |
|
M2 Pro Large |
6 CPU @3.49GHz |
14 GB |
5/min |
|
|
M2 Pro X Large |
12 CPU @3.49GHz |
28 GB |
9/min |
|
|
M1 Medium |
4 CPU @3.2GHz |
6 GB |
2/min |
|
|
M1 Large |
8 CPU @3.2 GHz |
12 GB |
4/min |
|
|
M1 Max Medium |
5 CPU @3.2 GHz |
27 GB |
6/min |
|
|
M1 Max Large |
10 CPU @3.2 GHz |
54 GB |
8/min |
|
|
Linux |
Medium |
4 vCPU @3.1 GHz |
16 GB |
1/min |
|
Large |
8 vCPU @3.1 GHz |
32 GB |
2/min |
|
|
X Large |
16 vCPU @3.1 GHz |
64 GB |
4/min |
|
A build stack indicates the full configuration of the virtual machine that Bitrise uses to run your build. Each stack includes an operating system, and a large number of pre-installed software and tools. For example, our Xcode stacks run on macOS operating systems and contain, among many other tools, the Xcode version that is indicated in the name of the stack.
A Workflow is a collection of Steps, Environment Variables, and other configurations. When Bitrise starts a build, it runs one or more Workflows according to the configuration defined in the bitrise.yml
file.
The Bitrise Workflow Editor allows you to edit your Workflows, configure Steps, upload files (including code signing files) and manage your app's triggers and stacks on a graphical user interface. It is available both online and offline.