A tiny antomation tool.
Go to file
areskill c47f0a1a20 doc up in readme 2023-12-05 14:50:10 +01:00
.docker working globals 2023-09-06 21:03:39 +02:00
cast move every extra flag into single object "options" 2023-11-30 12:06:35 +01:00
cicd move every extra flag into single object "options" 2023-11-30 12:06:35 +01:00
cli remove unused imports and debug print statements 2023-12-02 10:42:50 +01:00
examples tidy cast crate 2023-09-03 21:07:42 +02:00
exec bug fix attached process inherit parent outputs 2023-11-29 18:40:07 +01:00
pipelight add: baked new error color theme 2023-10-27 19:16:35 +02:00
switch fix: set `run -vvv` verbose command line argument priority over config flag 2023-12-02 10:40:13 +01:00
templates remove code set to deletion 2023-10-27 12:16:16 +02:00
utils fix: there was a mistake in the shell script 2023-12-01 10:49:39 +03:00
workflow fix: set `run -vvv` verbose command line argument priority over config flag 2023-12-02 10:40:13 +01:00
.envrc Working rist workspace flake 2023-11-17 17:52:35 +01:00
.gitignore ignore direnv folder 2023-11-17 17:55:58 +01:00
.novops.yml bug fix: read and write rights on process output file "/var/log" -> 2023-08-30 06:47:59 +02:00
.pipelight_ignore pipelight ignore package build dir 2023-10-20 14:14:00 +02:00
CONTRIBUTING.md Working rist workspace flake 2023-11-17 17:52:35 +01:00
Cargo.lock add pipeline level options to set if should_detach from stio 2023-11-29 16:29:44 +01:00
Cargo.toml add trah flakes for test 2023-11-14 11:51:25 +01:00
INTERNALS.md commented the lower level crate 2023-09-28 14:54:07 +02:00
LICENSE.md add licence 2023-06-04 19:18:23 +02:00
README.md doc up in readme 2023-12-05 14:50:10 +01:00
default.nix update flake ver 2023-12-01 10:20:19 +01:00
flake.lock add required methods for global log level retrieval (Config getters) 2023-12-01 10:04:58 +01:00
flake.nix split flake into default and shell nix for legacy support 2023-11-20 18:20:38 +01:00
pipelight.ts add required methods for global log level retrieval (Config getters) 2023-12-01 10:04:58 +01:00
rust-toolchain.toml add auto toolchain setup 2023-11-10 11:46:00 +01:00
shell.nix remove build and install custom phase 2023-11-20 20:18:52 +01:00
test.pipelight.ts fix: set `run -vvv` verbose command line argument priority over config flag 2023-12-02 10:40:13 +01:00

pipelight_logo

Pipelight - Tiny automation pipelines.

Automate your most boring and repetitive tasks.

  • Define pipelines using typescript, toml and yaml.
  • Pipelines get triggered on specific events (git hooks, file changes).

Checkout the Documentation for a much friendly approach and a deeper understanding.

📦 A lightweight tool for CICD

Pipelight is a Rust based small(13Mb) cli tool to be used from inside a terminal.

Define pipelines with a programming language

Fold your bash commands into an object Pipeline{ Step{ Command }} written in Typescript, and it executes the pipeline on some events.

As long as you know javascript, you are ready to go with your favorite syntax flavor 🍦.

Use a verbose and declarative syntax (Objects API).

const my_pipeline = {
  name: "build_my_website",
  steps: [
    {
      name: "clean directory",
      commands: ["rm -rf ./dist"],
    },
    {
      name: "build",
      commands: ["pnpm install", "pnpm lint", "pnpm build"],
    },
  ],
};

Use the provided sweet shorthands (Helpers API).

const my_pipeline = pipeline("build website", () => [
  step("clean directory", () => [`rm -rf ${build_dir}`]),
  step("build", () => ["pnpm install", "pnpm lint", "pnpm build"]),
  step("send to host", () => [`scp -r ${build_dir}`]),
  step("do stuffs on host", () => [
    ssh("host", () => ["systemctl restart nginx"]),
  ]),
]);

⚙️ Automatic triggers

Add automatic triggers to your pipeline.

  • Run tests on file change,
  • Deploy to production on push to master,...
# enable watcher and git hooks.
pipelight enable git-hooks
pipelight enable watcher
pipeline.add_trigger({
  branch: ["master"],
  actions: ["pre-push"],
});

🫦 Pretty and verbose logs

Get the pipeline most relevant informations or dive into the steps and commands standard outputs.

Get the pipeline status, event, execution time... and more.

pipelight logs
pretty logs

Get a tranparent outputs of every subprocesses.

pipelight logs -vvvv
pretty logs

🛠️ Install (Linux)

Checkout the instruction guide for your favorite package manager.

🚀 Get started!

Create a default configuration file pipelight.ts in your project root directory with:

pipelight init

Try the harmless default pipeline:

pipelight run

And explore logs:

pipelight logs -vvvv

Community

Reach the community whenever you need support or software improvements. On discord or on telegram at @Areskul or send a mail at areskul@areskul.com.

Licensed under GNU GPLv2 Copyright (C) 2023 Areskul