Menu

Tree [8860c1] master v0.4.25 /
 History

HTTPS access


File Date Author Commit
 .pipelight 2023-03-22 Areskul Areskul [8860c1] add distro packaging pipeline
 exec 2023-03-01 Areskul Areskul [8407d1] replace multispaces with new line on tree print
 pipelight 2023-03-20 Deku Deku [e66e4d] add tests
 pipeline 2023-03-21 Areskul Areskul [74c130] add a tag
 playground 2023-03-20 Areskul Areskul [7e775b] add playground for tests
 shared 2023-03-20 Deku Deku [e66e4d] add tests
 typescript 2023-03-12 Areskul Areskul [befd0e] add teleport crate
 utils 2023-03-20 Deku Deku [d19020] add failsafe guqrd if triggers in config and ou...
 .gitignore 2023-02-17 Areskul Areskul [a5e9b8] print statuless nodes
 Cargo.lock 2023-03-20 Areskul Areskul [7e775b] add playground for tests
 Cargo.toml 2023-03-01 Areskul Areskul [5d9386] miette error display
 README.md 2023-03-06 Areskul Areskul [3c412f] smaller readme
 ROADMAP.md 2023-03-21 Areskul Areskul [47a180] add Deno allow run
 pipelight.ts 2023-03-22 Areskul Areskul [8860c1] add distro packaging pipeline

Read Me

Pipelight

A tiny automation tool.

Wrap your bash script with Typescript.
And trigger those pipelines automatically on git action.

Define, Run pipe, check Logs, without living your terminal.

Full Documentation

Install

Package only available on Arch linux.
(Available soon on Debian/Ubuntu and Fedora)

Install from the AUR

paru -S pipelight

Or from source

git clone <this_repo>
cd pipelight
cargo build --release
cp target/release/pipelight* /<my_bin_directory>/

TL;DR

If you're too can not stand the suspens and go further in the documentation..
Just read the USAGE section, install and try the Cli.
It will yell a few times until your config file is good.
But in the end it will run smooth.
Enjoy!

In short:
Pipelight is easy to install, fast, and usable for every kind of project.


Usage

Configuration example

Create a config file at the root of your project

//pipelight.config.ts
const config = {
  pipelines: [
    {
      name: "my_pipeline",
      steps: [
        {
          name: "list working directory",
          commands: ["ls -alh"]
        },
        {
          name: "get working directory",
          commands: ["pwd"]
        }
      ]
    }
  ]
};
export default config;

Command Line Interface (Cli)

In the same folder..

List pipelines defined in config file

pipelight ls

or

pipelight ls -vvv

Run a pipeline

pipelight run <pipeline_name>

Compulsively check execution with pretty termial logs

pipelight logs

Verbosity can be increased..

pipelight logs -vvv

pretty verbose logs picture

The actulal pipeline to deploy the documentation website.

Abort pipeline execution

pipelight stop <pipeline_name>

Triggers

Only works in a Git repo.

//pipelight.config.ts
const config = {
  pipelines: [
    {
      name: "automatic",
      triggers: [
        {
          actions: ["pre-push", "pre-commit"],
          branches: ["master"]
        }
      ]
    }
  ]
};
export default config;

Define triggers as combinations of branch-name and git-hooks.

How it works

Think of it as a bash wrapper.

When we first deploy a project we quickly edit some raw bash scripts.
It's clearly the fastest way to test.

//deploy.sh
vitest
vite build
rsync local_files to_my_remote_server

But at some point, this method lakes verbosity, and automation...
Just put your commands into a Pipeline object.

//pipelight.config.ts
import { Config } from "npm:pipelight";
const config: Config = {
  pipelines: [
    {
      name: "deploy",
      steps: [
        {
          name: "test",
          commands: ["vitest"]
        },
        {
          name: "build",
          commands: ["vite build"]
        },
        {
          name: "send",
          commands: ["rsync local_files to_my_remote_server"]
        }
      ]
    }
  ]
};
export default config;

Add triggers, appreciate logs, and bettern your deployment scripts.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.