kibana/packages/kbn-bazel-runner
Luke Elmers b6287708f6
Adds AGPL 3.0 license (#192025)
Updates files outside of x-pack to be triple-licensed under Elastic
License 2.0, AGPL 3.0, or SSPL 1.0.
2024-09-06 19:02:41 -06:00
..
src Adds AGPL 3.0 license (#192025) 2024-09-06 19:02:41 -06:00
index.js Adds AGPL 3.0 license (#192025) 2024-09-06 19:02:41 -06:00
kibana.jsonc Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00
package.json Adds AGPL 3.0 license (#192025) 2024-09-06 19:02:41 -06:00
README.mdx [kbn/pm] rewrite to avoid needing a build process (#136207) 2022-07-18 08:46:13 -07:00
tsconfig.json Transpile packages on demand, validate all TS projects (#146212) 2022-12-22 19:00:29 -06:00

---
id: kibDevDocsOpsBazelRunner
slug: /kibana-dev-docs/ops/bazel-runner
title: "@kbn/bazel-runner"
description: A package holding helpers to invoke Bazel
date: 2022-05-24
tags: ['kibana', 'dev', 'contributor', 'operations', 'bazel', 'runner']
---

This is a package with helpers for invoking bazel and iBazel commands, used everywhere we programmatically run bazel.

## API

### async runBazel(args: string[], options: BazelRunOptions)

It runs bazel on the background with the given options

### async runIBazel(args: string[], options: BazelRunOptions)

It runs a IBazel on the background with the given options

#### BazelRunOptions

```
{
  // a logger to print the command output
  log: SomeDevLog;
  // run bazel with the no connection compatible config or not
  offline?: boolean;
  // environment variables to set in process running Bazel
  env?: Record<string, string>;
  // directory to run bazel in
  cwd?: string;
  // text to include at the beginning on each line of log output produced by bazel
  logPrefix?: string;
  // handler to implement custom error handling
  onErrorExit?: (code: number) => void;
}
```


## NOTE:

This code is needed in order to properly bootstrap the repository. As such, it can't have any NPM dependencies or require being built. This code is loaded directly into the node.js process that boostraps the repository from source while also being built into a package and exposed to the rest of the package system. Please consider this when making any changes to the source.

The code is still type-checked as JS with JSDoc comments, and a single .ts file which provides interfaces to the JS validation and are publically available to package consumers.