README

bldy

build Build Status GoDoc

A blazingly fast build system written in Go!

bldy.build for more information

Expand ▾ Collapse ▴

Documentation

Overview

Package build defines build target and build context structures

Index

Constants

This section is empty.

Variables

var (
	HostPlatform    = label.Label("@bldy//platforms:host")
	DefaultPlatform = HostPlatform
)

Functions

This section is empty.

Types

type Rule

type Rule interface {
	Name() string
	Dependencies() []label.Label
	Outputs() []string
	Hash() []byte
	Build(*executor.Executor) error
	Platform() label.Label
	Workspace() workspace.Workspace
}

Rule defines the interface that rules must implement for becoming build targets.

type Status

type Status int

go:generate stringer -type=Status Status represents a nodes status.

const (
	// Success is success
	Success Status = iota
	// Fail is a failed job
	Fail
	// Pending is a pending job
	Pending
	// Started is a started job
	Started
	// Fatal is a fatal crash
	Fatal
	// Warning is a job that has warnings
	Warning
	// Building is a job that's being built
	Building
)

func (Status) String

func (i Status) String() string

type VM

type VM interface {
	GetTarget(label.Label) (Rule, error)
}

VM seperate the parsing and evauluating targets logic from rest of bldy so we can implement and use new grammars like jsonnet or go it self.

Directories

Path Synopsis
builder
cmd/bldy
cmd/build
cmd/query
depset
executor
file
graph Package graph parses and generates build graphs
internal Package internal is used for registering types in build, it had no clear place in other packages to go which is why it gets it's own package
label
namespace
namespace/docker
namespace/host
postprocessor Package builder parses build graphs and coordinates builds
project
racy Package racy deals with file cryptography
rules/cc
rules/golang/golang
rules/yacc
skylark
skylark/skylarkutils
tests Package integration only contains integration tests
workspace
workspace/testws