Skip to content

fluentci-io/fluentci

Repository files navigation

Cover

Fluent CI CLI

FlakeHub flakestry.dev deno module deno compatibility discord

Made with VHS

Fluent CI is a CI/CD tool that allows you to build, test, and deploy your code. It is a self-hosted solution built on top of Dagger, Wasm and Deno, can be run locally or on a server, and is completely free and open-source.

It is also a registry of pre-built pipelines. This means you don't have to write your CI/CD configuration from scratch. You can simply search for and use pipelines that others have already built for frameworks like Django, React, Node, etc.


DevHunt - Tool of the WeekΒ 

✨ Features

  • Single Command: Manage your CI/CD pipeline locally with a single command.
  • Runs everywhere: Run your pipeline on any machine - whether it's local, remote, cloud-based, physical server, or a VM & any architecture x86 or ARM.
  • Export to Your CI/CD: Export your FluentCI pipeline to any CI Provider like GitHub Actions, GitLab CI, Azure Pipelines, AWS CodePipeline, CircleCI etc.
  • Web UI: Manage your pipelines with a web-based user interface, see FluentCI Studio.
  • Registry: Search for reusable pipelines in the FluentCI Registry.
  • Nix: Run your pipeline in a Nix environment instead of Docker (optional).
  • Extensibility: Enable extensibility with plugin. Write your own plugin in TypeScript, Rust or any language that compiles to WebAssembly.
  • Works on my Machine: Never experience it again.

🚚 Installation

using Deno (recommended) :

deno install -A -g -r https://cli.fluentci.io -n fluentci

using Bash (Linux/macOS) :

curl -fsSL https://cli.fluentci.io | bash

using Homebrew :

brew install fluentci-io/tap/fluentci

using Pkgx :

pkgx install fluentci

using Nix :

nix profile install --experimental-features "nix-command flakes" github:fluentci-io/fluentci

using Docker :

docker run --privileged \
-v /var/run/docker.sock:/var/run/docker.sock \
-it ghcr.io/fluentci-io/cli:latest run base_pipeline

Or download the binary from the releases page and add it to your PATH.

Requirements:

πŸ“¦ Downloads

Latest (Desktop):

Latest (CLI):

✨ Quick Start

Setup a new pipeline in your current directory and run it by using the following commands:

fluentci init # Initialize a new pipeline in the current directory
fluentci # Run the pipeline

Or start FluentCI Studio:

fluentci studio

πŸš€ Usage

fluentci --help

Usage:   fluentci [pipeline] [jobs...]
Version: 0.16.4                      

Description:

  .                                                                                    
      ______              __  _________                                                
     / __/ /_ _____ ___  / /_/ ___/  _/                                                
    / _// / // / -_) _ \/ __/ /___/ /                                                  
   /_/ /_/\_,_/\__/_//_/\__/\___/___/                                                  
                                                                                       
  FluentCI CLI - An Open Source CI/CD tool written in TypeScript (Deno) based on Wasm Plugins and Dagger

Options:

  -h, --help             - Show this help.                            
  -V, --version          - Show the version number for this program.  
  -r, --reload           - Reload pipeline source cache               
  -w, --wasm             - Run pipeline as WebAssembly Module         
  --remote-exec          - Run pipeline on remote agent               
  -*, --*        [args]  - Pass arguments to pipeline                 

Commands:

  run        <pipeline> [jobs...]  - Run a pipeline                                            
  init       [pipeline-name]       - Initialize a new pipeline                                 
  search     <query>               - Search for reusable pipelines                             
  upgrade                          - Upgrade FluentCI CLI to the latest version                
  cache      [pipeline]            - Cache remote dependencies of a pipeline                   
  ls, list   [pipeline]            - List all jobs in a pipeline                               
  docs, man  [pipeline]            - Show documentation for a pipeline                         
  doctor                           - Check if FluentCI CLI is installed correctly              
  env                              - Show environment variables (read from .fluentci/.env file)
  login                            - Login to FluentCI                                         
  publish                          - Publish a pipeline to FluentCI Registry                   
  agent                            - Start FluentCI Runner Agent                               
  whoami                           - Show current logged in user                               
  repl       [pipelines...]        - Start FluentCI REPL                                       
  studio                           - Start FluentCI Studio, a web-based user interface         
  project                          - Manage projects                                           
  server                           - Start FluentCI GraphQL Server                             
  up                               - Start services                                            
  down                             - Stop services                                             
  ps                               - List services                                             
  status     <service>             - Show status of a service                                  
  start      <service>             - Start a service                                           
  restart    <service>             - Restart a service                                         
  stop       <service>             - Stop a service                                            
  echo       <service>             - Stream logs of a service  
  community                        - Join our community Discord to chat with us            

πŸ“š Documentation

View the full documentation

✍️ Feedback

This repository is the central place to collect feedback and issues related to FluentCI CLI.

Please open an issue if you want to leave feedback. Feel free to also join our Discord server

🀝 Contributing

We would love to hear your feedback or suggestions. The best way to reach us is on Discord.

We also welcome pull requests into this repo. See CONTRIBUTING.md for information on setting up this repo locally.