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

    View Source
    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

        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
          cmd
          Package graph parses and generates build graphs
          Package graph parses and generates build graphs
          Package builder parses build graphs and coordinates builds
          Package builder parses build graphs and coordinates builds
          Package racy deals with file cryptography
          Package racy deals with file cryptography
          rules
          cc
          Package integration only contains integration tests
          Package integration only contains integration tests
          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
          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