Cicada: Write CI/CD pipelines in TypeScript
- Pipeline: A pipeline is the highest level concept in Cicada. It is a
TypeScript file like
build.ts
,deploy,ts
, orrun_tests.ts
. A pipeline is triggered when an event occurs in your repository such as a new commit or a pull request being opened. A pipeline is an array of jobs that are executed sequentially or in parallel. - Jobs: A job is an array of steps executed on the same container/runner.
- Steps: A step is either a shell script or Deno script executed in the job's container
Example
You have a Pipeline called "Tests". It has jobs called "Cypress" and
"Playwright" that execute in separate containers. Each job has multiple steps
for cloning your code, installing the testing framework, and executing the tests
- Deno - Installation Guide
- Docker (at least version 23.0) - Installation Guide
brew install deno
brew install --cask docker
Use this script to download the latest release of Cicada:
curl -fSsL https://raw.githubusercontent.com/cicadahq/cicada/main/download.sh | sh
Go to the project you want to make a pipeline for and run:
cicada init <pipeline-name>
cicada run .cicada/<pipeline-name>.ts
Install the Deno extension for VSCode:
code --install-extension denoland.vscode-deno
Add the following to your .vscode/settings.json
{
"deno.enable": true,
"deno.enablePaths": [".cicada"]
}
👉 Docs: https://deno.land/x/cicada/lib.ts
👉 Discord: https://discord.gg/g2PRPm4u4Y
- Add direct integrations with buildkit
- Integrate deeper with deno