FluentCI Documentation

website·Indexed 32 days ago

https://docs.fluentci.io

A CI/CD platform featuring a CLI for managing pipelines, a GraphQL server, and FluentCI Studio, a web-based interface for pipeline management. It supports a plugin registry with Wasm and Dagger-based plugins, and integrates with providers like GitHub Actions and Azure Pipelines.

Tokens
56.6K
Snippets
541
Records
622
Agent score
59%

What's inside FluentCI

  1. Overview of Fluent CI plugin types

    Fluent CI plugins are the core building blocks responsible for executing pipeline tasks. There are two available formats:

    1. Dagger based plugins: Written in TypeScript, executed by Deno, and run within a containerized environment.
    2. Wasm based plugins: Written in Rust, compiled to WebAssembly, and run in the host environment with isolated dependencies via Extism and tools like Nix, Pkgx, or Devbox (no Docker required).
  2. Overview of Fluent CI

    Fluent CI is a self-hosted, open-source CI/CD tool used to build, test, and deploy code in a standardized way. It is built on Dagger, WebAssembly (Wasm), and Deno. It provides a registry of pre-built pipelines for common frameworks (e.g., Java, React, Node, Deno), allowing users to utilize existing configurations instead of writing them from scratch. Key features include a local-first development workflow, a web-based UI via FluentCI Studio, and consistency between local execution and CI providers (such as GitHub Actions, GitLab CI, Azure Pipelines, and AWS CodePipeline).
  3. Integrate FluentCI into a GitHub Actions workflow

    To use FluentCI within GitHub Actions, use the fluentci-io/setup-fluentci@v5 action to initialize the environment. Once set up, you can execute commands using the fluentci run CLI, optionally specifying the target architecture (e.g., --wasm) to run tools like Go tests or builds.
    name: ci
    on:
      push:
        branches:
          - main
    jobs:
      tasks:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Setup Fluent CI
            uses: fluentci-io/setup-fluentci@v5
          - name: tests
            run: fluentci run --wasm go test
          - name: build
            run: fluentci run --wasm go build -buildvcs=false
  4. Compose pipelines using FluentCI Studio

    FluentCI Studio provides a web-based composer interface that allows users to easily compose actions and build a CI pipeline. The composer includes access to over 50 available plugins to extend pipeline functionality.
  5. Integrate Temporal service into GitHub Actions

    To run the Temporal service in a GitHub Actions workflow, use the fluentci-io/setup-fluentci action and then execute the fluentci run --wasm temporal start command.
    name: ci
    on:
      push:
        branches:
          - main
    jobs:
      tasks:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Setup Fluent CI
            uses: fluentci-io/setup-fluentci@v5
          - name: Run temporal Service
            run: fluentci run --wasm temporal start
  6. Run Minio service in GitHub Actions

    Integrate the Minio service into a GitHub Actions workflow by using the fluentci-io/setup-fluentci action and then executing the minio start command via the FluentCI CLI.
    name: ci
    on:
      push:
        branches:
          - main
    jobs:
      tasks:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Setup Fluent CI
            uses: fluentci-io/setup-fluentci@v5
          - name: Run minio Service
            run: fluentci run --wasm minio start
  7. Deploy applications to Wasmer Edge using FluentCI CLI

    Use the FluentCI Wasmer plugin to build and deploy applications to Wasmer Edge without needing to install the Wasmer CLI locally. To deploy, you must provide a WASMER_TOKEN environment variable.
    # Build the application
    fluentci run --wasm wasmer build
    
    # Deploy to Wasmer Edge (requires WASMER_TOKEN to be exported)
    export WASMER_TOKEN=your_token_here
    fluentci run --wasm wasmer deploy
  8. Integrate Oxc linting into GitHub Actions

    Use the fluentci-io/setup-fluentci action to integrate Oxc linting into a GitHub Actions workflow. Configure the action with wasm: true, plugin: oxc, and the lint argument.
    name: ci
    on:
      push:
        branches:
          - main
    jobs:
      tasks:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Setup Fluent CI
            uses: fluentci-io/setup-fluentci@v5
            with:
              wasm: true
              plugin: oxc
              args: |
                lint 
  9. Integrate Dpl with GitHub Actions

    To deploy a project using Dpl in GitHub Actions, use the fluentci-io/setup-fluentci action to install the dpl plugin and then execute the deployment command (e.g., for Heroku) using flox activate.
    name: Deploy
    on:
      push:
        branches:
          - main
    jobs:
      tasks:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Setup FluentCI
            uses: fluentci-io/setup-fluentci@v5
            with:
              wasm: true
              plugin: dpl
              args: |
                setup
          - name: deploy
            run: flox activate -- dpl heroku api --app $HEROKU_APP_NAME --api_key $HEROKU_API_KEY
            env:
              HEROKU_APP_NAME: ${{ secrets.HEROKU_APP_NAME }}
              HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
  10. Build and test Go applications using FluentCI

    FluentCI provides a Go plugin that handles the Go environment automatically, removing the need to install Go locally on your machine. You can execute build and test commands directly via the FluentCI CLI using the --wasm flag.
    # Run Go tests
    fluentci run --wasm go test
    
    # Build the Go application
    fluentci run --wasm go build
  11. Manage Kubernetes applications with FluentCI Helm commands

    FluentCI provides a set of Helm-related commands to manage Kubernetes applications. Available commands include:

    • setup: Installs a specific version of Helm.
    • install: Install a chart.
    • lint: Examine a chart for possible issues.
    • package: Package a chart directory into a chart archive.
    • pull: Pull a chart from a repository and optionally unpack it locally.
    • push: Push a chart package to a chart repository.
    • registry: Login to or logout from a registry.
    • rollback: Rollback to a previous release.
    • test: Run tests for a release.
    • upgrade: Upgrade a release.
  12. Integrate Heroku deployment with GitHub Actions

    Automate Heroku deployments using GitHub Actions by utilizing the fluentci-io/setup-fluentci action. Ensure that HEROKU_APP_NAME and HEROKU_API_KEY are configured as GitHub Secrets to keep credentials secure.
    name: ci
    on:
      push:
        branches:
          - main
    jobs:
      tasks:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - name: Setup Fluent CI
            uses: fluentci-io/setup-fluentci@v5
          - name: deploy
            run: fluentci run --wasm heroku deploy --app $HEROKU_APP_NAME --api_key $HEROKU_API_KEY
            env:
              HEROKU_APP_NAME: ${{ secrets.HEROKU_APP_NAME }}
              HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}