Optimizing CircleCI
Discover how to optimize your CircleCI builds and get the most out of your integrations with these helpful articles. Learn how to reduce build times and increase the reliability of your CI/CD pipelines.
89 articles
Overview: Self Service Configuration Review
Configuration Review Preparation
Configuration Review Preparation: Document the Config Review
Configuration Review Preparation: Review CircleCI Features
Configuration Review Preparation: Snapshot Project Metrics
Review Each Job for Improvement Opportunities
Review Each Job for Improvement Opportunities: General Job Opportunities
Review Each Job for Improvement Opportunities: Execution Environment Opportunities
Review Each Job for Improvement Opportunities: Opportunities for Jobs with High Duration
Review Each Workflow for Improvement Opportunities
High Level Improvement Opportunities
Inside a Config File: Config Security Opportunities
Inside a Config File: Reusable Config Opportunities
Inside a Config File: Dynamic Configuration
Outside a Config File: Security Settings
Outside a Config File: Secrets Management
Outside a Config File: Storage Usage
Outside a Config File: Project Settings
Finalize the Config Review
Debugging Slow or Hanging Jobs in CircleCI
Using the Current Concurrency Snapshot Script
Why Status Updates for Approval, No-Op Jobs and release Include Workflow Names
How to Pass Environment Variables Between Steps in CircleCI
Resolving Duplicate Pipeline Executions on CircleCI for GitHub Repositories
Workspaces and Network Egress
Avoiding Commit Conflicts in Your Pipelines with Serial-Jobs
Is There a Limit on the Number of Approval Jobs You Can Have?
Lowering Cache and Workspace Costs
Required job did not run when using branch filters
How can I trigger one pipeline from another?
Utilizing the Usage API
How to toggle Error Summarization
Limit on Number of Scheduled Pipelines
Build on Pull Requests and all commits
Terraform Build Passing Errantly
Merge Queues: Preventing Early Merges Before Triggering Build
Configuring the Datadog Integration with CircleCI
Learn why the duration time displayed for a job in CircleCI may differ from the total duration of its individual steps
How To Estimate Network Ingress and Egress (Bytes) Within a Build
How to optimize the restore_cache step for Node projects
Speed up steps using a RAM disk
Resolving "Failed to minify the bundle" Errors
Shallow Repository Cloning
Troubleshoot "Error uploading archive: MetadataTooLarge: Your metadata headers exceed the maximum allowed metadata size" save_cache Error
GoLang Uses All Available Memory in Docker
Creating a "daily" cache
Troubleshooting why a build is failing due to a cache miss
Troubleshooting restoring cache appears empty with a size of 32 bytes
How can I remove my cached docker layers?
How to fix `Error applying workspace layer for job`
Troubleshooting Cache Not Found During Restore
Why isn't Docker Layer Caching speeding up my "spin up" time?
setup_remote_docker Is Slow To Spin Up
How to Manage Cache Keys in CircleCI
Exit Code 137 - Out of Memory
Best practices for managing multiple configs
How can I clear a CircleCI cache?
Optimizing Build Performance on CircleCI's macOS Executors
Best Practices for Minimizing AWS Data Transfer Costs with CircleCI and ECR
How to set a custom maximum job duration
CircleCI was unable to execute the job to completion, because the CircleCI runner received a kill signal midway through the job
How to set the resource_class for docker and machine images
How to get the compiled version of a config.yml
How to set custom DNS for alpine images on CircleCI
Receiving "Your compiled config is too large to be processed." How Can I Reduce my Config File Size?
How to set custom DNS on Ubuntu based images using netplan
How to Debug Docker Layer Cache Misses in a Build
How To Use Caching With Self-Hosted Runners
How To Determine if Your Build Is Under-Provisioned
How to install additional software when using the CircleCI windows image
Create a windows RAM disk
Docker Layer Caching (DLC) - Frequently Asked Questions
Configuring CPU Parallelism for pytest in CircleCI
Configuring Maximum CPU Parallelism for Ruby Testing Tools in CircleCI
Configuring Maximum CPU Parallelism for NPM Testing Tools in CircleCI
Different Cache Key (arch) within Parallel Runs in the same Job
Can I Split My Tests By Testname With Rails/RSPEC?
Handling Test File Outputs for CircleCI Test Reruns
Split By Timings Not Working For Git Tag Triggered Builds
Running Steps Conditionally in CircleCI Parallel Jobs
Common test splitting issues with pytest
Test splitting not working with mocha-junit-reporter
Use test splitting with Python Django tests
Test Summary Troubleshooting
How to troubleshoot Test Splitting
How to dynamically set job parallelism
I have split my tests by timing, but why is the split not even?
Test Split Outputs Warning: “Error Reading Historical Timing Data: File Does Not Exist”
Collecting/combining files after parallel test runs