Run builds from a lane

Build and test from a session in a lane, and stop a lane with its builds

A session in a lane builds and tests through kiln, the machine's build queue. When the build names the lane's worktree as its folder, kiln counts it as that lane's work: each lane gets its fair share of the machine, and stopping the lane stops its builds.

Build from a session

The session calls the build.* tasks through the trove tool:

trove build run folder="$PWD" target=src/libs/libfoo
trove build run folder="$PWD" target=test/testFoo tests=true
  • folder is the checkout or worktree that kiln runs in, by its absolute path. The door host runs the build, so a relative folder means nothing to it. In a lane, it is the lane's worktree, which is the session's working folder.
  • target is the product to build, relative to the folder. Leave it out to build everything in the folder.
  • With tests=true, kiln runs the suites instead, and the answer names the report: the path of the run's tests.json, which the session can read.

A folder that is not a kiln checkout fails at once, before kiln runs.

Stop a lane

trove call trove.lane.stop lane=3

The lane stop does three things, in this order:

  1. It interrupts the lane's session.
  2. It cancels every build of the lane's worktree, as build.cancel folder=<worktree> does.
  3. It releases the lane's work unit, so the unit goes back to the pool.

The answer says whether a session was interrupted, what kiln canceled, and which work unit was released.

In this section
Topics
howto trove kiln build
See also