Skip to content

Commit

Permalink
add Cookbook
Browse files Browse the repository at this point in the history
  • Loading branch information
tsirysndr committed Jun 12, 2024
1 parent fb209e4 commit cb53346
Show file tree
Hide file tree
Showing 46 changed files with 9,116 additions and 89 deletions.
Binary file modified bun.lockb
Binary file not shown.
16 changes: 9 additions & 7 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,22 @@ Let's discover **Fluent CI in less than 5 minutes**.

## What is Fluent CI?

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.land/), can be run locally or on a server, and is completely free and open-source.
Fluent CI is a CI/CD tool that allows you to build, test, and deploy your code in a standardized way. It is a self-hosted solution built on top of [Dagger](https://dagger.io/), [Wasm](https://webassembly.org) and [Deno](https://deno.land/), can be run locally or on a server, and is completely free and open-source.

It is also a registry of pre-built pipelines that you can use to build, test, and deploy your code. 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.
It is also a registry of pre-built pipelines that you can use to build, test, and deploy your code. 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 different projects like Java, React, Node, Deno etc.

## Why Fluent CI?

Fluent CI is a great choice for your CI/CD needs because it is:

- **Easy to use**: built on top of [Dagger](https://dagger.io/) and [Wasm](https://webassembly.org/), you can easily write and run pipelines in Typescript/Rust or any other language that compiles to Wasm.

- **Web-based UI**: you can easily set up and manage your pipelines using a web-based UI (FluentCI Studio).
- **Local first**: you can start using Fluent CI locally on your machine, and then export your pipelines to your CI Provider (Github Actions, Gitlab CI, Azure Pipelines, AWS CodePipeline, etc.) when you are ready.

- **Self-hosted**: self-hosted solution, which means you can run it locally or on a server. This gives you complete control over your CI/CD process. No need to rely on third-party services like GitHub Actions, GitLab CI, etc.
- **Web-based UI**: you can easily set up and manage your pipelines using a web-based UI ([FluentCI Studio](/category/fluentci-studio/intro)).

- **Consistent**: designed to be consistent across all platforms, you can run the same pipeline locally and on your CI Provider without any changes.

- **Easy to use**: built on top of [Dagger](https://dagger.io/) and [Wasm](https://webassembly.org/), you can easily write and run pipelines in Typescript/Rust or any other language that compiles to Wasm.

- **Free and open-source**: completely free and open-source, you can use it for any purpose, commercial or non-commercial, without any restrictions.

- **Extensible**: you can easily extend Fluent CI to meet your specific needs.
Expand All @@ -34,4 +36,4 @@ All Fluent CI pipelines are written in Typescript ([Deno](https://deno.com/)) /
And all pipelines will be executed :

- by [Dagger](https://dagger.io/) in a Docker container, you can easily run them locally or on a server, any platform that supports Docker.
- Or by [FluentCI Engine](https://github.com/fluentci-io/fluentci-engine) in a isolated environment directly on your host machine (thanks to Nix, Pkgx, Flox, Devbox, Devenv, Mise, etc.), for Wasm based Pipelines.
- Or by [FluentCI Engine](https://github.com/fluentci-io/fluentci-engine) in an isolated environment directly on your host machine (thanks to Nix, Pkgx, Flox, Devbox, Devenv, Mise, etc.), for Wasm based Pipelines.
2 changes: 1 addition & 1 deletion docs/tutorial-basics/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ curl -fsSL https://cli.fluentci.io | bash
You can also install fluentci using [Homebrew](https://brew.sh/):

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

### Pkgx
Expand Down
4 changes: 2 additions & 2 deletions docs/tutorial-extras/_category_.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"label": "Configuring your project",
"position": 3,
"label": "Cookbook",
"position": 2,
"link": {
"type": "generated-index"
}
Expand Down
25 changes: 25 additions & 0 deletions docs/tutorial-extras/build-bun.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
sidebar_position: 1
---

# Build and test Bun applications

This guide will show you how to build and test Bun applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Bun`. In addition:

- Have your `Bun` project handy, including `package.json` and `test` files.

## Using the Bun Plugin

You can use FluentCI to build Bun applications using [bun plugin](https://github.com/fluent-ci-templates/bun-pipeline), no need to install Bun your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Bun applications:

```bash
fluentci run --wasm bun test
fluentci run --wasm bun build
```

35 changes: 35 additions & 0 deletions docs/tutorial-extras/build-containers.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
sidebar_position: 2
---

# Build Container Images

This page explains how to build container images for your applications using FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Docker`. In addition:

- Have Docker installed on your machine.
- Have your application source code along with `Dockerfile` handy.

## Using the Buildx Plugin

You can use FluentCI to build container images using the [buildx plugin](https://github.com/tsirysndr/daggerverse/tree/main/buildx), no need to install buildx on your machine, FluentCI will handle everything for you.

The following command can be used to build container images:

```bash
fluentci run --wasm buildx build --platform linux/amd64,linux/arm64 -t demo:latest .
```

## Using the Nixpacks Plugin

You can use FluentCI to build container images using the [nixpacks plugin](https://github.com/tsirysndr/daggerverse/tree/main/nixpacks), no need to install nixpacks on your machine, FluentCI will handle everything for you.

The following command can be used to plan and build container image:

```bash
fluentci run --wasm nixpacks nixpacks plan . --format json
fluentci run --wasm nixpacks nixpacks build . --name myapp
```
24 changes: 24 additions & 0 deletions docs/tutorial-extras/build-deno.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
sidebar_position: 3
---

# Build and test Deno applications

This page explains how to build and test Deno applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Deno`. In addition:

- Have your `Deno` project handy, including `deno.json` and `test` files.

## Using the Deno Plugin

You can use FluentCI to build Deno applications using [deno plugin](https://github.com/fluent-ci-templates/deno-pipeline), no need to install Deno on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Deno applications:

```bash
fluentci run --wasm deno test
fluentci run --wasm deno compile -A --output myapp --target x86_64-unknown-linux-gnu main.ts # suppose main.ts is your entry file
```
26 changes: 26 additions & 0 deletions docs/tutorial-extras/build-flutter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
sidebar_position: 4
---

# Build and test Flutter applications

This guide will help you build and test Flutter applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Flutter`. In addition:

- Be familiar with creating Flutter-based applications.
- Have your Flutter project ready.

## Using the Flutter Plugin

You can use FluentCI to build and test Flutter applications using the [flutter plugin](https://github.com/fluent-ci-templates/flutter-pipeline), no need to install Flutter on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Flutter applications:

```bash
fluentci run --wasm flutter code_quality
fluentci run --wasm flutter test
fluentci run --wasm flutter build
```
26 changes: 26 additions & 0 deletions docs/tutorial-extras/build-gleam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
sidebar_position: 5
---

# Build and test Gleam applications

This page explains how to build and test Gleam applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Gleam`. In addition:

- Be familiar with creating Gleam-based applications.
- Have your Gleam project ready.

## Using the Gleam Plugin

You can use FluentCI to build and test Gleam applications using the [gleam plugin](https://github.com/fluent-ci-templates/gleam-pipeline), no need to install Gleam on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Gleam applications:

```bash
fluentci run --wasm gleam test
fluentci run --wasm gleam build
```

24 changes: 24 additions & 0 deletions docs/tutorial-extras/build-go.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
sidebar_position: 6
---

# Build and test Go applications

This page explains how to FluentCI to build and test Go applications.

## Before you begin

The instructions on this page assume that you are familiar with `Go`. In addition:

- Have your Go project handy.

## Using the Go Plugin

You can use FluentCI to build and test Go applications using the [go plugin](https://github.com/fluent-ci-templates/go-pipeline), no need to install Go on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Go applications:

```bash
fluentci run --wasm go test
fluentci run --wasm go build
```
24 changes: 24 additions & 0 deletions docs/tutorial-extras/build-java.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
sidebar_position: 7
---

# Build and test Java applications

This guide will help you build and test Java applications with FluentCI.

## Before you begin

- Be familiar with creating Java-based applications.
- Be familiar with [Maven](https://maven.apache.org/maven-features.html)
- Have your Java project ready.

## Using the Maven Plugin

You can use FluentCI to build Java applications using [maven plugin](https://github.com/fluentci-io/maven-plugin), no need to install Maven or JDK on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Java applications:

```bash
fluentci run --wasm maven test
fluentci run --wasm maven package -Dmaven.test.skip=true
```
25 changes: 25 additions & 0 deletions docs/tutorial-extras/build-nodejs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
sidebar_position: 8
---

# Build and test Node.js applications

This page explains how to build and test Nodejs applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Nodejs`. In addition:

- Have your `Node.js` project handy, including `package.json` and `test.js` files.
- Make sure your `package.json` file includes a `build` script and a `test` script.

## Using the Node.js Plugin

You can use FluentCI to build and test Node.js applications using the [node.js plugin](https://github.com/fluent-ci-templates/nodejs-pipeline), no need to install Node.js on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Node.js applications:

```bash
fluentci run --wasm nodejs test
fluentci run --wasm nodejs build
```
27 changes: 27 additions & 0 deletions docs/tutorial-extras/build-php.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
sidebar_position: 9
---

# Test PHP applications

This guide will help you to test PHP applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `PHP`. In addition:

- Be familiar with creating PHP-based applications.
- Have your PHP project ready.
- Have your `composer.json` and `phpunit.xml` files ready.
- Have your tests written in the `tests` directory.

## Using the PHP Plugin

You can use FluentCI to test PHP applications using the [php plugin](https://github.com/fluent-ci-templates/php-pipeline), no need to install PHP on your machine, FluentCI will handle everything for you.

The following commands can be used to test PHP applications:

```bash
fluentci run --wasm php compose_install
fluentci run --wasm php test
```
25 changes: 25 additions & 0 deletions docs/tutorial-extras/build-rust.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
sidebar_position: 10
---

# Build and test Rust applications

This page explains how to build and test Rust applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Rust`. In addition:

- Be familiar with creating Rust-based applications.
- Have your `Rust` project ready, including `test` files.

## Using the Rust Plugin

You can use FluentCI to build and test Rust applications using the [rust plugin](https://github.com/fluent-ci-templates/rust-pipeline), no need to install Rust on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Rust applications:

```bash
fluentci run --wasm rust test
fluentci run --wasm rust build
```
25 changes: 25 additions & 0 deletions docs/tutorial-extras/build-zig.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
sidebar_position: 11
---

# Build and test Zig applications

This guide will help you build and test Zig applications with FluentCI.

## Before you begin

The instructions on this page assume that you are familiar with `Zig`. In addition:

- Be familiar with creating Zig-based applications.
- Have your Zig project ready, including `test` files.

## Using the Zig Plugin

You can use FluentCI to build and test Zig applications using the [zig plugin](https://github.com/fluent-ci-templates/zig-pipeline), no need to install Zig on your machine, FluentCI will handle everything for you.

The following commands can be used to build and test Zig applications:

```bash
fluentci run --wasm zig test
fluentci run --wasm zig build
```
28 changes: 28 additions & 0 deletions docs/tutorial-extras/deploy-to-cloudflare.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
sidebar_position: 12
---

# Deploy to Cloudflare

This guide will show you how to deploy a React application to Cloudflare Pages and a Cloudflare Worker using FluentCI.

## Before you begin

- Have your React project ready.
- Have a Cloudflare account.
- Have a Cloudflare Pages project set up.
- Have a Cloudflare Worker set up.

## Using the Cloudflare Plugin

You can use FluentCI to deploy your React application to Cloudflare Pages and a Cloudflare Worker using the [cloudflare plugin](https://github.com/fluent-ci-templates/cloudflare-pipeline), no need to install Cloudflare Wrangler CLI or Node.js on your machine, FluentCI will handle everything for you.

The following commands can be used to deploy your React application to Cloudflare Pages:

```bash
fluentci run --wasm bun run build
fluentci run --wasm cloudflare pages_deploy dist --project-name $PROJECT_NAME
# to deploy a Cloudflare Worker, set CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID
# in your environment variables and run:
fluentci run --wasm cloudflare deploy
```
Loading

0 comments on commit cb53346

Please sign in to comment.