Skip to content

Local CI is a VS Code extension that runs CircleCI® workflows locally, with Bash access and persistence. Not affiliated with CircleCI®.

License

Notifications You must be signed in to change notification settings

getlocalci/local-ci

Repository files navigation

Platform: macOS Requires CircleCI®

Debug entire CircleCI® workflows locally, with Bash access and caching between jobs.

All in your local, no pushing commits and waiting. Not affiliated with CircleCI®.

Local CI Demo

Author: Ryan Kienstra, ryan@ryankienstra.com

Run Jobs Locally

Running job

Debugging

Get Bash access to the running job by clicking 'Local CI debugging':

Bash in a running job

When the job exits, you'll still have Bash access to the job.

Restore And Save Cache

Run jobs faster when you cache dependencies.

Local CI supports the native restore_cache and save_cache values:

Editor with restore cache

Run The Whole Workflow

You can even run jobs that depend on other jobs, because this persists the workspace between jobs:

Persisting to the workspace

CI jobs can fail because of wrong dependency versions, or flaky combinations of events.

You'll get local Bash access to jobs, so you'll usually be able to see what's wrong and fix it.

Thanks to CirleCI-Public/cirlceci-cli and mikefarah/yq, which this uses.

CircleCI® is a registered trademark of Circle Internet Services, Inc.

Dynamic Configs

You can run most dynamic configs with Local CI.

Find out in seconds whether the setup is right, all in your local.

Requirements

CircleCI®, macOS, Docker

If you don't have a CircleCI® account, you can get started with CircleCI® for free.

A .circleci/config.yml file should be somewhere in the VS Code workspace, using the 2.x configuration.

If there's more than one .circleci/config.yml file, click the gear icon to select which one to use:

Selecting config file

Privacy

You can opt out of all telemetry by adding this to your VS Code settings.json:

"telemetry.telemetryLevel": "off"

If you haven't opted out, here are the telemetry events sent via VS Code telemetry.

The only interaction this extension has with Local CI's site is if you optionally enter your email on first activating this extension.

It does interact with CircleCI® and Docker to process and run the jobs.

But the jobs still only run locally.

Local CI has no server that runs jobs, so the site has no knowledge of the jobs or any data from them.

Feel free to look at the source code for how Local CI works.

When To Use

Local CI won't replace the CircleCI® service, it's a debugging tool to use with it.

If you think CI will pass, it'll probably be faster to simply push a commit and let CI run.

Local CI is not for making deployments.

License

GPL v2 or later