Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
118 lines (84 sloc) 5.53 KB

Frequently Asked Questions

Is Cirrus CI a delivery platform?

Cirrus CI is not positioned as a delivery platform but can be used as one for many general use cases by having Dependencies between tasks and using Conditional Task Execution or Manual Tasks:

lint_task:
  script: yarn run lint

test_task:
  script: yarn run test

publish_task:
  only_if: $BRANCH == 'master'
  trigger_type: manual
  depends_on: 
    - test
    - lint
  script: yarn run publish

Are there any limits?

Cirrus CI has following limitations on how many VMs or Containers a single user can run on community clusters for public repositories for free or for private personal repositories under the $10/month plan:

  • 8 Linux Containers or VMs
  • 2 Windows Containers or VMs
  • 2 FreeBSD VMs
  • 1 macOS VM

There are no limits on how many VMs or Containers you can run in parallel if you bring your own compute services or use Compute Credits for either private or public repositories.

!!! note "No per repository limits" Cirrus CI doesn't enforce any limits on repository or organization levels. All the limits are on per user basis. For example, if you have 10 active contributors to a repository then you can end up with 130 tasks running in parallel for the repository.

!!! note "Cache and Logs Redundancy" By default Cirrus CI persists caches and logs for 90 days. If you bring your own compute services this period can be configured directly in your cloud provider's console.

IP Addresses of Community Clusters

Instances running on Community Clusters are using static IPs for outgoing traffic from the instances. Knowing these IPs might be useful for safelisting while integrating your CI builds with external services.

Infrastructure NAT hostname IP
OS X macstadium.community.nat.cirrus-ci.com 207.254.42.60
Linux gcp.community.nat.cirrus-ci.com 35.222.255.190
FreeBSD gcp.community.nat.cirrus-ci.com 35.222.255.190
Windows 2019 gcp.community.nat.cirrus-ci.com 35.222.255.190
Windows 1803 gcp.community.nat.cirrus-ci.com 35.222.255.190
Windows 1709 gcp.community.nat.cirrus-ci.com 35.222.255.190
Windows 2016 (deprecated) Not Supported Not Available

CI agent stopped responding!

It means that Cirrus CI haven't heard from the agent for quite some time. In 99.999% of the cases it happens because of two reasons:

  1. Your task was executing on Community Cluster. Community Cluster is backed by Google Cloud's Preemptible VMs for cost efficiency reasons and Google Cloud preempted back a VM your task was executing on. Cirrus CI is trying to minimize possibility of such cases by constantly rotating VMs before Google Cloud preempts them, but there is still chance of such inconvenience.

  2. Your CI task used too much memory which led to a crash of a VM or a container.

Instance failed to start!

It means that Cirrus CI have made a successful API call to a computing service to allocate resources. But a requested resource wasn't created.

If it happened for an OSS project, please contact support immediately. Otherwise check your cloud console first and then contact support if it's still not clear what happened.

Instance got rescheduled!

Cirrus CI is trying to be as efficient as possible and uses an auto-scalable cluster of preemptible VMs to run Linux containers for OSS. It allows to drastically lower Cirrus CI's bill for parts of infrastructure that run tasks for OSS projects free of charge but it comes with a rare edge case...

Preemptible VMs can be preempted which will require to reschedule and automatically restart tasks that were executing on these VMs. This is a rare event since autoscaler is constantly rotating instances but preemption still happens occasionally.

!!! tip "Compute Credits" Tasks that use compute credits are executed on standard VMs that don't get preempted.

Instance timed out!

By default Cirrus CI has an execution limit of 60 minutes for each task. However, this default timeout duration can be changed by using timeout_in field in .cirrus.yml configuration file:

task: 
  timeout_in: 90m
  ...

!!! note "Maximum timeout" There is a hard limit of 2 hours for community tasks. Use compute credits or compute service integration to avoid the limit.

Only GitHub Support?

At the moment Cirrus CI only supports GitHub via a GitHub Application. We are planning to support BitBucket next.

Any discounts?

Cirrus CI itself doesn't provide any discounts except Community Cluster which is free for open source projects. But since Cirrus CI delegates execution of builds to different computing services, it means that discounts from your cloud provider will be applied to Cirrus CI builds.

You can’t perform that action at this time.