Cicada: Write CI/CD pipelines in TypeScript
Brendan Falk
Posted on April 25, 2023
Hey DEV! I’m Brendan, one of the creators of Cicada (cicada.build). 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
- 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.
- 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.
- 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!
[1] https://docs.docker.com/build/buildkit/
[2] https://fly.io/
Posted on April 25, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.