Frequently Asked Questions¶
Is Cirrus CI a delivery platform?¶
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 for free for public repositories:
- 8 Linux Containers or VMs
- 2 Windows Containers or VMs
- 2 FreeBSD VMs
- 1 macOS VM
Which means that a single user can run at most 13 simultaneous tasks for free.
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.
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.
|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:
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.
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.
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.
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
timeout_in field in
.cirrus.yml configuration file:
task: timeout_in: 90m ...
Only GitHub Support?¶
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.