Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RPCTimestampFromTime ¶
RPCTimestampFromTime takes a time.Time and returns an RPC timestamp
Types ¶
type APIKey ¶
type APIKey struct { ID uuid.UUID Created time.Time GitHubUser, Name, Description string ReadOnly bool }
APIKey models a user-created API key
type Build ¶
type Build struct { ID uuid.UUID Created, Updated, Completed time.Time GitHubRepo, GitHubRef string EncryptedGitHubCredential []byte ImageRepos []string Tags []string CommitSHATag bool BuildOptions *BuildOpts Request *furanrpc.BuildRequest Status BuildStatus Events []string }
func (*Build) CanAddEvent ¶
CanAddEvent indicates whether b is in a state where events can be added
func (*Build) EncryptAndSetGitHubCredential ¶
EncryptAndSetGitHubCredential takes a GitHub credential, encrypts it and sets EncryptedGitHubCredential accordingly
func (*Build) EventListenable ¶
EventListenable indicates where b is in a state where events can be listened for
func (*Build) GetGitHubCredential ¶
GetGitHubCredential returns the decrypted user token using key or error
type BuildManager ¶
type BuildManager interface { Start(ctx context.Context, opts *BuildOpts) error Run(ctx context.Context, id uuid.UUID) error }
BuildManager describes an object that manages builds
type BuildOpts ¶
type BuildOpts struct { BuildID uuid.UUID `json:"-"` ContextPath, CommitSHA string `json:"-"` // set by Builder RelativeDockerfilePath string `json:"relative_dockerfile_path"` BuildArgs map[string]string `json:"build_args"` Cache *furanrpc.BuildCacheOpts `json:"cache_opts"` Resources *furanrpc.BuildResources `json:"resources"` }
BuildOpts models all options required to perform a build
type BuildStatus ¶
type BuildStatus int
const ( // BuildStatusUnknown Invalid or unknown status BuildStatusUnknown BuildStatus = iota // BuildStatusNotStarted Build has been requested but not started yet BuildStatusNotStarted // BuildStatusSkipped Build was requested but determined to be unnecessary BuildStatusSkipped // BuildStatusRunning Build is currently running in a k8s job BuildStatusRunning // BuildStatusFailure Build failed or internal error BuildStatusFailure // BuildStatusSuccess Build successfully completed & pushed BuildStatusSuccess // BuildStatusCancelRequested Build cancellation was requested but build has not yet aborted BuildStatusCancelRequested // BuildStatusCancelled Build was aborted due to cancellation request BuildStatusCancelled )
func BuildStatusFromState ¶
func BuildStatusFromState(s furanrpc.BuildState) BuildStatus
func (BuildStatus) State ¶
func (bs BuildStatus) State() furanrpc.BuildState
func (BuildStatus) String ¶
func (i BuildStatus) String() string
func (BuildStatus) TerminalState ¶
func (bs BuildStatus) TerminalState() bool
TerminalState returns whether the status is in a final (terminal) state that will not change
type CacheFetcher ¶
type CacheFetcher interface { // Fetch fetches the build cache for a build and returns a local filesystem // path where it was written. Caller is responsible for cleaning up the path when finished. Fetch(ctx context.Context, b *Build) (string, error) // Save persists the build cache for a build located at path. // Caller is responsible for cleaning up the path afterward. Save(ctx context.Context, b *Build, path string) error }
CacheFetcher describes an object that fetches and saves build cache
type CodeFetcher ¶
type CodeFetcher interface { GetCommitSHA(ctx context.Context, repo, ref string) (string, error) Fetch(ctx context.Context, repo, ref, destinationPath string) error }
CodeFetcher represents an object capable of fetching code
type Job ¶
type Job interface { // Error returns a channel that will contain any errors associated with this Job Error() chan error // Running returns a channel that signals that the build the Job is executing has been updated to status Running // This indicates that the Furan sidecar has started and is executing successfully and will take responsibility for // tracking the build status from this point forward Running() chan struct{} // Logs returns all pod logs associated with the Job Logs() (map[string]map[string][]byte, error) }
Job describes methods on a single abstract build job