Skip to content

Latest commit

 

History

History
125 lines (87 loc) · 2.63 KB

GETTING_STARTED.md

File metadata and controls

125 lines (87 loc) · 2.63 KB

Getting Started with Sykli

Get up and running with Sykli in under 5 minutes.

Prerequisites

  • Elixir 1.14+ (only if building from source)
  • Docker (optional, for container tasks)
  • One of: Go 1.21+, Rust 1.80+, Node.js 18+, or Elixir 1.14+

Installation

Option 1: Install Script (Recommended)

curl -fsSL https://raw.githubusercontent.com/false-systems/sykli-elixir/main/install.sh | bash

Release candidates are not GitHub latest. To use the current RC SDKs, install the matching CLI:

curl -fsSL https://raw.githubusercontent.com/false-systems/sykli-elixir/main/install.sh | bash -s v0.9.0-rc.1

Option 2: Download Binary

Download from GitHub Releases and add to your PATH.

Option 3: Build from Source

git clone https://github.com/false-systems/sykli-elixir.git
cd sykli/core
mix deps.get
mix escript.build
sudo mv sykli /usr/local/bin/

GitHub Integration

The GitHub Action is a hosted fallback for teams that still need GitHub-hosted runners. For the local-first path, use the GitHub-native webhook receiver in docs/github-native.md: GitHub sends events to a node you control, and Sykli executes there.

Your First Pipeline

1. Install the SDK

Pick your language:

# Go
go get github.com/false-systems/sykli-elixir/sdk/go@v0.3.0

# Rust
cargo add sykli

# TypeScript
npm install sykli

# Elixir - add to mix.exs: {:sykli_sdk, "~> 0.3.0"}

2. Create a Pipeline File

Go (sykli.go):

package main

import sykli "github.com/false-systems/sykli-elixir/sdk/go"

func main() {
    s := sykli.New()
    s.Task("hello").Run("echo 'Hello from Sykli!'")
    s.Task("goodbye").Run("echo 'Goodbye!'").After("hello")
    s.Emit()
}

TypeScript (sykli.ts):

import { Pipeline } from 'sykli';

const p = new Pipeline();
p.task('hello').run("echo 'Hello from Sykli!'");
p.task('goodbye').run("echo 'Goodbye!'").after('hello');
p.emit();

3. Run It

sykli

You should see:

-- Level with 1 task(s) --
[1/2] hello
Hello from Sykli!

-- Level with 1 task(s) --
[2/2] goodbye
Goodbye!

hello -> goodbye

2 passed in 0.1s

Next Steps

  • README - Full documentation, all SDK examples, CLI reference
  • docs/adr/ - Architecture Decision Records
  • Examples - Real-world pipeline examples

Quick Tips

  • Add .Inputs("**/*.go") to enable caching
  • Add .After("task1", "task2") for dependencies
  • Run sykli graph to visualize your pipeline
  • Run sykli delta to only run tasks affected by git changes