luci: Index | Files

package luciexe

import ""

Package luciexe implements LUCI Executable protocol, documented in message Executable in


Package Files

client.go doc.go listener.go logdog.go logdog_posix.go main.go nocancel.go runner.go


const BuildStreamName = "build.proto"

BuildStreamName is the name of the build stream, relative to $LOGDOG_STREAM_PREFIX. For more details, see Executable message in

func RunnerMain Uses

func RunnerMain(args []string) int

RunnerMain runs LUCI runner, a program that runs a LUCI executable.

type Client Uses

type Client struct {
    // Timestamp for the build message stream.
    // If zero, time.Now is used.
    BuildTimestamp time.Time

    // InitBuild is the initial state of the build read from stdin.
    InitBuild *pb.Build

    // Logdog environment.
    // Logdog.Client can be used to create new LogDog streams.
    Logdog *bootstrap.Bootstrap
    // contains filtered or unexported fields

Client can be used by Go programs to implement LUCI Executable protocol.

Example program that does not check errors:

package main


func main() int {
   var client luciexe.Client
     Steps: []*buildbucketpb.Step{
         Name: "checkout",
         Status: buildbucketpb.SUCCESS,
         // start time, end time

TODO(nodir): add support for sub-builds.

func (*Client) Close Uses

func (c *Client) Close() error

Close flushes all builds and closes down the client connection.

func (*Client) Init Uses

func (c *Client) Init() error

Init initializes the client. Populates c.InitBuild and c.Logdog.

func (*Client) WriteBuild Uses

func (c *Client) WriteBuild(build *pb.Build) error

WriteBuild sends a new version of Build message to the other side of the protocol, that is the host of the LUCI executable.

Package luciexe imports 56 packages (graph) and is imported by 2 packages. Updated 2019-07-20. Refresh now. Tools for package owners.

The go get command cannot install this package because of the following issues: