Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: Cicada – Write CI/CD Pipelines in TypeScript (cicada.build)
18 points by grant0417 on April 25, 2023 | hide | past | favorite | 9 comments


This actually looks really promising. I find it really annoying to write yaml files and running shell scripts inside of a string. It also has a lot of boilerplate code that is just copy-pasted every time I need to write a new pipeline.

I really like the potential for a good community here just like Github Actions. Also first-class support for running the CI is a gamechanger. Really excited to see cicada's future


Congrats for the promising project :)! What is the main difference between dagger.io and Cicada ? Thanks


We actually have a point on this on our website!

> Both Cicada and Dagger are CI engines that allows you to build pipelines in code. Cicada is focused entirely on TypeScript, while Dagger supports multiple different programming languages. By choosing TypeScript as Cicada's dedicated CI runtime, we are able to provide a more idiomatic SDK and support running TypeScript code directly in containers.

Dagger is a lot more focused on trying to stick to BuildKit and make CI/CD fit into that model, we took a more traditional looking approach where you define steps on a pipeline which should be more familiar to people who have written a CI/CD pipeline before.


I tried to get it running on one of my projects but ran into an issue trying to get my `NPM_TOKEN` into the environment variables of the container. It looks like it tries to pull from a .env file so I tried that and it didn't work. I also have the environment variable loaded in my shell but passing `-s` didn't work either?

FWIW maybe it is how I'm starting cicada with: `npx @cicadahq/cicada run dev`

The docs are pretty light on how to actually run this thing. It also says that it supports being run from GitHub Actions but does not show any example of that. Am I just going to write a GitHub Action that calls cicada? That is odd.


Hi HN! I’m Grant, creator of (https://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

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 (https://cicada.build/docs) or by joining our Discord (https://cicada.build/discord).

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

[0] https://deno.land/

[1] https://docs.docker.com/build/buildkit/

[2] https://fly.io/

[3] https://github.com/cicadahq/buildkit-rs

[4] https://github.com/cicadahq/cicada


Cicada looks very promising, congrats. I'm wondering why you choose to use Fly.io for the CI/CD runners, instead of using VPS / baremetal servers that are a lot cheaper? Do you need the edge features that Fly.io offers?


We really like the speed of their firecracker VMs with spinning up runners (important when you need your CI/CD to start quick), we don't really need the edge features of the platform.


The initial version of the Cicada framework was built internally at Fig (fig.io) but we liked using it so much that we wanted to open it up to the community.

We were so sick of fighting with proprietary YAML. TS is a breath of fresh air.


See also: nuke.build




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: