Luigit
repositories / bugabinga.net

bugabinga.net

personal infrastructure for bugabinga!

owned by admin

services/luci/internal/ciconfig/types.go

Raw
package ciconfig

type Config struct {
	Jobs []Job
}

type Job struct {
	Name       string
	SourceFile string
	Source     string
	Image      string
	Run        []string
	Trigger    Trigger
	Matrix     Matrix
	Secrets    []Secret
	Caches     []Cache
	Mounts     []Mount
	Artifacts  []Artifact
	Publishes  []Publish
}

type Trigger struct {
	Push     *Push
	Schedule *Schedule
}

type Push struct {
	Branches []string
	Tags     []string
	Include  []string
	Exclude  []string
}

type Schedule struct {
	Expression string
}

type Matrix struct {
	Axes []Axis
}

type Axis struct {
	Name   string
	Values []string
}

type Secret struct {
	Name string
	Env  string
	File string
}

type Cache struct {
	Name     string
	Path     string
	KeyFiles []string
}

// Mount is a durable directory bind derived by Luci, never a host path from a repo.
type Mount struct {
	Type   string
	Name   string
	Target string
}

// Artifact is one immutable public file set collected from the workspace.
type Artifact struct {
	Name         string
	Paths        []string
	Required     bool
	AfterFailure bool
}

type Publish struct {
	Adapter string
	Image   string
	From    string
	To      string
}

type ExpandedJob struct {
	Job    Job
	Name   string
	Values map[string]string
}