Giter Club home page Giter Club logo

pipelight / pipelight Goto Github PK

View Code? Open in Web Editor NEW
267.0 3.0 6.0 9.08 MB

Tiny automation pipelines. Bring CI/CD to the smallest projects. Self-hosted, Lightweight, CLI only.

Home Page: https://pipelight.dev

License: GNU General Public License v2.0

Rust 94.64% TypeScript 3.34% JavaScript 0.45% Nix 1.57%
cicd bash typescript automation continuous continuous-delivery continuous-deployment continuous-integration continuous-testing pipeline

pipelight's Introduction

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)

Important

Pipelight is not (yet) compatible with macOS or Windows.

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 [email protected].

Licensed under GNU GPLv2 Copyright (C) 2023 Areskul

pipelight's People

Contributors

bbkane avatar kogeletey avatar pipelight avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pipelight's Issues

More information about watcher

Hi again! Coult you tell me more details about watch actions?
I seem to have turned on watcher and added actions watch to pipelines, but nothihg happens

Enable attach and display logs on 3rd level by default

Often a situation arises when you need know what output your instrument produces.
This is especially useful if we use it with git hooks.
In connection with the above I suggest displaying logs on 3rd level by default, for example moby/buildkit does so, and if it don't need the disable them using --no-attach.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.