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
folderis 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.targetis 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 thereport: the path of the run'stests.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:
- It interrupts the lane's session.
- It cancels every build of the lane's worktree, as
build.cancel folder=<worktree>does. - 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.