.docker | ||
cast | ||
cicd | ||
cli | ||
examples | ||
exec | ||
pipelight | ||
switch | ||
templates | ||
utils | ||
workflow | ||
.envrc | ||
.gitignore | ||
.novops.yml | ||
.pipelight_ignore | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
default.nix | ||
flake.lock | ||
flake.nix | ||
LICENSE.md | ||
pipelight.ts | ||
README.md | ||
rust-toolchain.toml | ||
shell.nix | ||
STRUCTURE_AND_FUNCTIONING.md | ||
test.pipelight.ts |
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](https://pipelight.dev/images/log_level_error.png)
Get a tranparent outputs of every subprocesses.
pipelight logs -vvvv
![pretty logs](https://pipelight.dev/images/log_level_trace.png)
🛠️ 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