Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fluent-ci-templates/fluentci

Set up and run your CI locally or in any CI Provider in a consistent way
https://github.com/fluent-ci-templates/fluentci

cicd dagger deno docker pipeline typescript webassembly

Last synced: 15 days ago
JSON representation

Set up and run your CI locally or in any CI Provider in a consistent way

Awesome Lists containing this project

README

        

![Cover](./.github/assets/fluentci-studio.png)

# Fluent CI CLI

[![FlakeHub](https://img.shields.io/endpoint?url=https://flakehub.com/f/fluentci-io/fluentci/badge)](https://flakehub.com/flake/fluentci-io/fluentci)
[![flakestry.dev](https://flakestry.dev/api/badge/flake/github/fluentci-io/fluentci)](https://flakestry.dev/flake/github/fluentci-io/fluentci)
[![deno module](https://shield.deno.dev/x/fluentci)](https://deno.land/x/fluentci)
![deno compatibility](https://shield.deno.dev/deno/^1.42)
[![discord](https://img.shields.io/discord/1132020671262773358?label=discord&logo=discord&color=5865F2)](https://discord.gg/V4U6dPskKc)

![Made with VHS](https://vhs.charm.sh/vhs-f5jk3sceXQrc55XC4fW3c.gif)

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](https://dagger.io), [Wasm](https://webassembly.org/) and [Deno](https://deno.com/), 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](https://github.com/fluentci-io/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](https://deno.com) (recommended) :

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

using Bash (Linux/macOS) :

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

using [Homebrew](https://brew.sh) :

```bash
brew install fluentci-io/tap/fluentci
```

using [Pkgx](https://pkgx.sh/) :

```bash
pkgx install fluentci
```

using [Nix](https://nixos.org) :

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

using [Docker](https://www.docker.com) :

```bash
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](https://github.com/fluentci-io/fluentci/releases) and add it to your PATH.

Requirements:
- [Deno](https://deno.com) 1.42 or higher. See [Deno Installation](https://deno.land/manual/getting_started/installation) for more information.
- [Dagger](https://dagger.io) 0.11.7 or higher. See [Dagger Installation](https://docs.dagger.io/cli/465058/install) for more information.

## 📦 Downloads

**Latest (Desktop):**

- `Mac`: arm64: [fluentci-studio_v0.2.0_arm64.dmg](https://github.com/fluentci-io/fluentci-studio/releases/download/v0.2.0/fluentci-studio_v0.2.0_arm64.dmg) intel: [fluentci-studio_v0.2.0_x64.dmg](https://github.com/fluentci-io/fluentci-studio/releases/download/v0.2.0/fluentci-studio_v0.2.0_x64.dmg)
- `Linux`: [fluentci-studio_v0.2.0.AppImage](https://github.com/fluentci-io/fluentci-studio/releases/download/v0.2.0/fluentci-studio_v0.2.0.AppImage)

**Latest (CLI):**

- `Mac`: arm64: [fluentci_v0.16.4_aarch64-apple-darwin.tar.gz](https://github.com/fluentci-io/fluentci/releases/download/v0.16.4/fluentci_v0.16.4_aarch64-apple-darwin.tar.gz) intel: [fluentci_v0.16.4_x86_64-apple-darwin.tar.gz](https://github.com/fluentci-io/fluentci/releases/download/v0.16.4/fluentci_v0.16.4_x86_64-apple-darwin.tar.gz)
- `Linux`: intel: [fluentci_v0.16.4_x86_64-unknown-linux-gnu.tar.gz](https://github.com/fluentci-io/fluentci/releases/download/v0.16.4/fluentci_v0.16.4_x86_64-unknown-linux-gnu.tar.gz) arm64: [fluentci_v0.16.4_aarch64-unknown-linux-gnu.tar.gz](https://github.com/fluentci-io/fluentci/releases/download/v0.16.4/fluentci_v0.16.4_aarch64-unknown-linux-gnu.tar.gz)

## ✨ Quick Start

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

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

Or start [FluentCI Studio](https://github.com/fluentci-io/fluentci-studio):

```bash
fluentci studio
```

## 🚀 Usage

```bash
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 [jobs...] - Run a pipeline
init [pipeline-name] - Initialize a new pipeline
search - 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 - Show status of a service
start - Start a service
restart - Restart a service
stop - Stop a service
echo - Stream logs of a service
community - Join our community Discord to chat with us
```

## 📚 Documentation

[View the full documentation](https://docs.fluentci.io)

## ✍️ Feedback

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

Please [**open an issue**](https://github.com/fluentci-io/fluentci/issues/new) if you want to leave feedback. Feel free to also join our [**Discord server**](https://discord.gg/V4U6dPskKc)

## 🤝 Contributing

We would love to hear your feedback or suggestions. The best way to reach us is on [Discord](https://discord.gg/H7M28d9dRk).

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