DEV Community

Brendan Falk
Brendan Falk

Posted on

Cicada: Write CI/CD pipelines in TypeScript

Hey DEV! I’m Brendan, one of the creators of Cicada ( Cicada lets you write CI/CD pipelines in TypeScript and test them locally.

We built Cicada because of our own struggles building CI/CD pipelines. YAML is cumbersome, not type-safe, and does not scale well for large pipelines. Sharing logic across pipelines is hard and most providers don’t let you test your pipelines locally.

Cicada lets you

  1. write your pipelines in a real programming language. Using TypeScript gives you type-checking, syntax highlighting, and in-line documentation out of the box. It also lets you extend your pipelines by hooking into the entire TypeScript ecosystem of packages and modules.
  2. test your pipelines locally. All jobs are run in containers. This means you can test them with Docker/Podman. It also means you get great caching.
  3. run your pipelines on our cloud. Pipelines are checked into your repository and run when triggered by an event in your repository (like a commit/PR), when triggered manually, or at a defined schedule.

We use Deno[0] to create pipeline definitions, Docker Buildkit[1] as our build engine, and Fly [2] for our cloud hosting. Our CLI is written in Rust for speed and stability. The hardest technical challenge we faced was writing BuildKit bindings for rust [3].

Cicada’s client is fully MIT OSS (the CLI, BuildKit integration, and SDK) [4]. Our dashboard and cloud runners are closed source. The cloud runners have a generous free tier for individuals and are cheap and easy for teams.

You can create and run your first pipeline on your local device by running npm install -g @cicadahq/cicada. You can also learn more in our docs or by joining our Discord.

In the meantime, I’d love to hear your feedback on what we’ve built!






Top comments (0)