Billing Overview#

Semaphore Cloud offers flexible pricing plans that allow you to choose the resources you need to power your CI/CD solution. With no limits on the number of seats, machine minutes, or artifacts you use, you can easily scale your setup as your team grows.

How Spending is Calculated#

In addition to subscription cost, your monthly bill is determined by your usage of the following four groups of resources:

  • Machine Time - the cost of using Semaphore Cloud machines (calculated by the minute)
  • Storage and Egress - the cost of storing and downloading your build artifacts
  • Seats - the cost of additional team members using Semaphore (charged only on Hybrid plans)
  • Add-ons - additional features or services offered by Semaphore Cloud (e.g. priority support, a dedicated cache server)

You can monitor your monthly spending at any time on the Plans & Billing page within the app. Please note that spending data may take up to 24 hours to update.

Machine Time#

Our app charges you based on the machine type used and the amount of time spent running. The timer starts when a job enters the running state and ends once the job is finished. Jobs that take less than one minute to complete will be rounded up to a full minute for billing purposes.

Only running time is billed

Please note that time spent in the queue state due to concurrency limits or pipeline queues is not counted towards machine time used.

Price per machine type#

Each cloud machine type has its own price per minute, listed in the table below:

Generation 2 vCPU (standard-2) 4 vCPU (standard-4) 8 vCPU (standard-8)
E1 (Linux) $0.0075 $0.015 $0.03
E2 (Linux) $0.01 $0.02 /
F1 (Linux) $0.015 $0.03 /
A1 (MacOS) / $0.03 /

Self-hosted agents spending#

Self-hosted agents are only available on Hybrid plans, and are not additionally charged in any way.

Monitoring and optimizing machine spending#

Your machine time spending can escalate due to factors like increased usage, parallelism, switching to a more expensive machine type, and a drop in pipeline performance. To optimize your machine time spending, consider the following tips:

  • Limit Unnecessary Builds - use auto-cancel and fail-fast features to run only the necessary jobs
  • Track Performance - monitor your pipeline performance with the pipeline insights tab and regularly review your spending trends on the Plans & Billing page
  • Choose the Right Machine Type - experiment with different machine types to find the best balance between performance and cost

Storage & Egress#

Storage and Egress costs are generated by the usage of artifacts:

  • Storage - the amount of data stored in your artifact buckets is charged in GB per month--one "unit" represents 1 GB of data stored for one month
  • Egress - network traffic generated by downloading artifacts within jobs or to an external location is charged in GB--one "unit" represents 1 GB of transferred data

Storage pricing#

Artifact storage is the amount of data your Semaphore organization stores in artifacts. This is measured in GB per month.

The price for each GB of storage is $0.07 per month.

Example: Say you store 20 GB of files as artifacts for 15 days. Semaphore will prorate this amount, so you would be charged the same for storing 20 GB of data for 15 days as you would for storing 10 GB of data for a month (20 * 0.5), assuming a 30-day month.

$0.07 (per GB per month) * 20 (GB) * 0.5 (15 days, or ½ of 30 day month) = $0.7

Monitoring and optimizing storage spending#

The best way to control storage spending is to ensure that you are not keeping unnecessary artifacts longer than they are needed.

1. Upload only necessary files
The Artifact CLI allows you to upload entire directories with all of their content, but often only a few files are needed. One simple step is to review the contents of the artifacts you are uploading and make sure you're only storing what's necessary.

If you are using parallelism, parallel jobs can sometimes upload the same files as different artifacts. Check your parallel jobs to ensure that you are not storing duplicates.

2. Set a retention policy
Most artifacts lose their value over time. For example, workflow and job artifacts are helpful when you’re debugging failing builds. Once the issue is resolved, however, you don't need them anymore.

Setting up an artifact retention policy allows you to cut costs by ensuring that the old, unused artifacts are regularly cleaned up.

Egress pricing#

Artifact egress is network traffic generated by artifact usage. This is expressed in GB, and the price for each GB of traffic is $0.35.

Artifact egress can be accrued via the following actions:

  • Downloading artifacts inside Semaphore jobs (e.g. using artifact pull commands)
  • Uploading artifacts to an external location (e.g. your local machine)

Note that uploading artifacts using the artifact push commands does not count towards egress spending.

Example:
Say you have a 10 MB file stored as a workflow artifact and you are pulling that file in 20 parallel jobs. This will generate 200 MB or 0.2 GB of traffic.

$0.35 (per GB) * 0.2 (GB) = $0.07

Monitoring and optimizing Egress spending#

To ensure that you are not generating unnecessary traffic, make sure to:

  • Determine which jobs are downloading artifacts by searching for artifact pull commands in your .yml files
  • Make sure that you aren't pulling unnecessary artifacts in your jobs
  • Avoid pulling large artifacts in jobs if you are using parallelism
  • Don’t use artifacts to cache job dependencies (we provide a free cache with unlimited traffic)
  • Don’t use artifacts to store and pull large Docker images (if you are on our Enterprise plan ask our support team about the Semaphore Private Docker registry)

Seats#

Seats are only charged in Hybrid plans and do not accumulate any charges in Cloud plans.

Seats are calculated by aggregating all unique organization members and non-members during a billing period. Members are unique users who were assigned a role in the Semaphore organization and non-members are unique users who haven't been assigned a role but have triggered Semaphore builds through git commits.

Seat pricing#

The cost of a seat depends on the plan you have chosen. At the beginning of each billing period, the number of members multiplied by the seat cost is added to your monthly bill. Your seat spending can increase during the month if you add more members to your organization or if non-member users trigger builds on Semaphore.

Monitoring and optimizing seat spending#

If your plan is based on seats, you can monitor your seat usage in the billing section of the app. The Seats page in this section displays all members and non-members who are counted towards your seat spending.

To optimize your seat spending, consider the following:

  • Regularly review the members in your organization who have access to Semaphore on the People page within the app
  • Properly configure your project's workflow triggers to ensure that you are only building the necessary builds (e.g. skip builds for forked PRs)
  • Regularly check the Seat page in the billing section to stay up-to-date on your seat usage and spending

Add-ons#

Semaphore offers add-ons for Startup and Scaleup plans to enhance your CI/CD experience. These add-ons include:

  • Dedicated Cache Server - Provides 400 GB of storage with 10 Gb/s network (ideal for workflows that require high sequential I/O, network performance, and disk throughput) cost: $400,00 per month
  • Dedicated Container Registry - Offers 400 GB of storage with 10 Gb/s network (improving the speed of your Docker-based builds by storing your images in the same infrastructure that your jobs run on) cost: $400,00 per month
  • Advanced & Premium Support - Enhances your technical and account support with options for 24x5 and 24x7 SLA along with additional benefits

The cost of any enabled add-ons will be automatically added to your monthly bill at the start of each billing period.