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

Buy license key 30 day free trial 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.

License Key

Local CI requires a license key for $20 per month.

But first you'll get a free 30-day trial, no credit card needed.

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.

If you haven't entered a license key, like during the free trial, 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.

If you have entered a license key, it only sends to the Local CI site a GET request with the license key and a SHA-256 hash of your VS Code machineId.

This is to verify that the license key is only used on 1 machine.

Here's an example machineId: b068aef3da6acff9c9bf4f129135ffd56adbfa294aeb8117c7264164c1a277d4

And that machineId is hashed with SHA-256 before sending it in the GET request.

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