A collection of reusable WebAssembly modules for building composable CI/CD pipelines with FluentCI
README.md

Docker #

PureScript module for docker, compiled to WebAssembly.

Requirements #

Install docker on the FluentCI host and make it available on PATH, or supply an executable path with executable. The module checks the host OS, working directory, and executable before running. Linux, macOS, FreeBSD, OpenBSD, and NetBSD hosts are accepted where the upstream CLI is available. This module uses an existing installation; it does not install the tool.

A local or remote container service must be available. Authenticate using the CLI credential store before pushes; interactive stdin is not forwarded.

Usage #

Call fluentci run docker build with this JSON object as plugin input:

{
  "project": ".",
  "runDir": ".fluentci/runs/docker-001"
}

Exports: run, version, build, pull, push, tag, container_run, compose. See OPTIONS.md for each command's typed fields and schema.json for machine-readable input definitions. run accepts an arguments array for other native CLI operations:

{"runDir": ".fluentci/runs/docker-002", "arguments": ["--help"]}

project is the local working directory (default .); use a fresh runDir for each invocation. timeoutMs defaults to 900000. Arguments are passed literally without shell expansion. A nonzero exit status fails the invocation. Commands execute immediately; use the CLI's preview or dry-run options when needed.

Authentication uses the native CLI configuration and inherited host environment. Keep credentials out of JSON input: execution plans and CLI logs are persisted. The output is the JSON execution report from runDir/result.json; task stdout and stderr are stored in that run directory. See the shared execution guide.

Development #

npm ci
npm run build
npm test

Builds produce dist/plugin.wasm. The shared CLI engine is in lib/cli; entry points, schemas, and argument references are generated by python3 ../../scripts/generate_cli_modules.py from its catalog. Tests execute the compiled module against a controlled host without contacting cloud accounts or clusters.

Upstream CLI documentation. Licensed under the MIT License.