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.
Pipelight is a Rust based small(13Mb) cli tool to be used from inside a terminal.
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"]),
]),
]);
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"],
});
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
Get a tranparent outputs of every subprocesses.
pipelight logs -vvvv
Important
Pipelight is not (yet) compatible with macOS or Windows.
Checkout the instruction guide for your favorite package manager.
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
Reach the community whenever you need support or software improvements. On discord or on telegram at @Areskul or send a mail at [email protected].
Licensed under GNU GPLv2 Copyright (C) 2023 Areskul