A collection of reusable WebAssembly modules for building composable CI/CD pipelines with FluentCI
modules setup purescript README.md
2.0 kB · 54 lines
Markdown
at main

PureScript #

Native WebAssembly component written in PureScript. Requires FluentCI v0.17.2+. Function signatures and argument descriptions come from the compiled PureScript source and are embedded in the component; no raw JSON plugin input is required.

Usage #

fluentci run setup-purescript setup --version 0.15.16
fluentci run setup-purescript --help
fluentci run setup-purescript setup --help

See COMPONENT.md for every named argument, description, required flag, and return type. The schema describes the same contract. Optional values retain the native module defaults. Lists use JSON array syntax; boolean arguments accept switches. Native function/flag names use kebab-case.

Requirements and behavior #

Installs and verifies purescript, then returns tool, version, bin-dir, and environment (a list of {name, value} records). Environment updates are visible to later tasks in the same host session. Separate shell invocations must add the returned installation directory to PATH explicitly.

Linux/macOS use the configured upstream or ecosystem installer. JavaScript tools are installed through Bun, bootstrapping Node.js/Bun when missing. Python, Go, Ruby, and Java prerequisites depend on the selected tool. BSD uses native pkg, pkg_add, or pkgin repositories; missing packages/versions fail clearly. Nix and Determinate Nix support Linux/macOS only; dpkg/rpmbuild installers are Linux-only.

Development #

From this module directory, with Node.js, Bun, PureScript, and Spago installed:

bun install --cwd ../../lib/component --frozen-lockfile
npm ci
npm run build
npm test

dist/plugin.wasm is the native component; dist/fluentci.metadata.json is its checksummed contract sidecar. The CJS bundles and legacy-entry.mjs exist only for private regression tests and are not the published module interface.

See the component migration guide and MIT License.