A collection of +180 reusable WebAssembly modules for building composable CI/CD pipelines with FluentCI
modules build bazel
2 folders · 17 files

src
test
.gitignore
build.mjs
COMPONENT.md
entry.mjs
fluentci-module.toml
fluentci.lock
legacy-entry.mjs
legacy-schema.json
LICENSE
module-dependencies.json
OPTIONS.md
package-lock.json
package.json
README.md
schema.json
spago.lock
spago.yaml
README.md

Bazel #

Native WebAssembly component written in PureScript. Requires FluentCI v0.17.3+. 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 bazel build --project . --run-dir .fluentci/runs/bazel-001
fluentci run bazel --help
fluentci run bazel build --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 #

Install Bazel or use setup-bazel. Java, compilers, and external repositories depend on the workspace. Bazel startup flags are available through run.arguments. run_target executes a built program; command arguments follow --.

The return value is a typed record containing outcome, run-dir, report-path, stdout-path, and stderr-path. Each invocation needs a fresh run directory. Native command failures, cancellation, and timeouts fail the component call. Use --artifacts '["package=dist/package.zip"]' to declare output files for the execution report. Authentication stays in native configuration or host environment.

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.

Setup component dependency #

This module declares setup-bazel as typed native component dependencies. FluentCI v0.17.3+ resolves their source references while building and composes them into the published Wasm. Consumers need no relative source paths. Available tools are reused; missing prerequisites invoke setup with default arguments. Explicit executable overrides remain caller-managed. Configure pinned versions or privileged/custom installations in an earlier setup step. See dependency behavior and publishing for command-specific prerequisites, validation, credential skips, and CI coverage.