Documentation
¶
Index ¶
- Constants
- Variables
- func MergeEnvironmentWith(env *envmanModels.EnvironmentItemModel, ...) error
- func MergeStepWith(step, otherStep stepmanModels.StepModel) (stepmanModels.StepModel, error)
- func ProcessContainerList(containers map[string]Container) (executionContainers map[string]Container, ...)
- type AppModel
- type BitriseDataModel
- func (config *BitriseDataModel) FillMissingDefaults() error
- func (config *BitriseDataModel) MinimalValidation() ([]string, error)
- func (config *BitriseDataModel) Normalize() error
- func (config *BitriseDataModel) RemoveRedundantFields() error
- func (config *BitriseDataModel) Validate() ([]string, error)
- type BuildRunResultsModel
- func (buildRes BuildRunResultsModel) ExitCode() int
- func (buildRes BuildRunResultsModel) HasFailedSkippableSteps() bool
- func (buildRes BuildRunResultsModel) IsBuildFailed() bool
- func (buildRes BuildRunResultsModel) IsStepLibUpdated(stepLib string) bool
- func (buildRes BuildRunResultsModel) OrderedResults() []StepRunResultsModel
- func (buildRes BuildRunResultsModel) ResultsCount() int
- type BuildRunStartModel
- type BundleContext
- type ConfigFileTreeModel
- type Container
- type ContainerConfig
- type ContainerPlan
- type ContainerType
- type Containerisable
- type DockerCredentials
- type GraphPipelineAlwaysRunMode
- type GraphPipelineRunIfModel
- type GraphPipelineWorkflowListItemModel
- type GraphPipelineWorkflowModel
- type GraphPipelineWorkflowModelInput
- type PipelineModel
- type PullRequestGitEventTriggerItem
- type PullRequestReadyState
- type PushGitEventTriggerItem
- type StageListItemModel
- type StageModel
- type StageWorkflowListItemModel
- type StageWorkflowModel
- type StepBundleListItemModel
- type StepBundleModel
- type StepBundlePlan
- type StepBundleRunIf
- type StepError
- type StepExecutionPlan
- type StepListItem
- type StepListItemModel
- func (stepListItem *StepListItemModel) GetBundle() (*StepBundleListItemModel, error)
- func (stepListItem *StepListItemModel) GetKeyAndType() (string, StepListItemType, error)
- func (stepListItem *StepListItemModel) GetStep() (*stepmanModels.StepModel, error)
- func (stepListItem *StepListItemModel) GetWith() (*WithModel, error)
- func (stepListItem *StepListItemModel) UnmarshalJSON(b []byte) error
- func (stepListItem *StepListItemModel) UnmarshalYAML(unmarshal func(interface{}) error) error
- type StepListItemStepOrBundleModel
- func (stepListItem *StepListItemStepOrBundleModel) GetBundle() (*StepBundleListItemModel, error)
- func (stepListItem *StepListItemStepOrBundleModel) GetKeyAndType() (string, StepListItemType, error)
- func (stepListItem *StepListItemStepOrBundleModel) GetStep() (*stepmanModels.StepModel, error)
- func (stepListItem *StepListItemStepOrBundleModel) UnmarshalJSON(b []byte) error
- func (stepListItem *StepListItemStepOrBundleModel) UnmarshalYAML(unmarshal func(interface{}) error) error
- type StepListItemType
- type StepListStepBundleItemModel
- type StepListStepItemModel
- type StepListWithItemModel
- type StepRunResultsModel
- type StepRunStatus
- type TagGitEventTriggerItem
- type TestResultStepInfo
- type ToolConfigModel
- type ToolID
- type ToolsModel
- type TriggerEventType
- type TriggerItemType
- type TriggerMapItemModel
- func (item TriggerMapItemModel) IsDraftPullRequestEnabled() bool
- func (item TriggerMapItemModel) MatchWithParams(pushBranch, prSourceBranch, prTargetBranch string, ...) (bool, error)
- func (item TriggerMapItemModel) Normalized(idx int) (TriggerMapItemModel, error)
- func (item TriggerMapItemModel) Validate(idx int, workflows, pipelines []string) ([]string, error)
- type TriggerMapModel
- func (triggerMap TriggerMapModel) FirstMatchingTarget(pushBranch, prSourceBranch, prTargetBranch string, ...) (string, string, error)
- func (triggerMap TriggerMapModel) Normalized() ([]TriggerMapItemModel, error)
- func (triggerMap TriggerMapModel) Validate(workflows, pipelines []string) ([]string, error)
- type Triggers
- type WithGroupContext
- type WithGroupPlan
- type WithModel
- type WorkflowExecutionPlan
- type WorkflowListItemModel
- type WorkflowModel
- type WorkflowRunModes
- type WorkflowRunPlan
- type WorkflowRunPlanBuilder
Constants ¶
const ( FormatVersion = "26" StepListItemWithKey = "with" StepListItemStepBundleKeyPrefix = "bundle::" )
const LogFormatVersion = "2"
const ToolSyntaxPatternInstalled = `(.*):installed$`
const ToolSyntaxPatternLatest = `(.*):latest$`
Variables ¶
var ToolProviders = []string{"asdf", "mise"}
Functions ¶
func MergeEnvironmentWith ¶
func MergeEnvironmentWith(env *envmanModels.EnvironmentItemModel, otherEnv envmanModels.EnvironmentItemModel) error
func MergeStepWith ¶
func MergeStepWith(step, otherStep stepmanModels.StepModel) (stepmanModels.StepModel, error)
Types ¶
type AppModel ¶
type AppModel struct {
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
StatusReportName string `json:"status_report_name,omitempty" yaml:"status_report_name,omitempty"`
Environments []envmanModels.EnvironmentItemModel `json:"envs,omitempty" yaml:"envs,omitempty"`
}
func (*AppModel) FillMissingDefaults ¶
func (*AppModel) MinimalValidation ¶
type BitriseDataModel ¶
type BitriseDataModel struct {
FormatVersion string `json:"format_version" yaml:"format_version"`
DefaultStepLibSource string `json:"default_step_lib_source,omitempty" yaml:"default_step_lib_source,omitempty"`
ProjectType string `json:"project_type" yaml:"project_type"`
//
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
//
App AppModel `json:"app,omitempty" yaml:"app,omitempty"`
Meta map[string]interface{} `json:"meta,omitempty" yaml:"meta,omitempty"`
TriggerMap TriggerMapModel `json:"trigger_map,omitempty" yaml:"trigger_map,omitempty"`
Pipelines map[string]PipelineModel `json:"pipelines,omitempty" yaml:"pipelines,omitempty"`
Stages map[string]StageModel `json:"stages,omitempty" yaml:"stages,omitempty"`
Workflows map[string]WorkflowModel `json:"workflows,omitempty" yaml:"workflows,omitempty"`
StepBundles map[string]StepBundleModel `json:"step_bundles,omitempty" yaml:"step_bundles,omitempty"`
Tools ToolsModel `json:"tools,omitempty" yaml:"tools,omitempty"`
ToolConfig *ToolConfigModel `json:"tool_config,omitempty" yaml:"tool_config,omitempty"`
// Docker container definitions
Services map[string]Container `json:"services,omitempty" yaml:"services,omitempty"`
// The new containerization syntax uses the "containers" property to define both execution and service containers.
// The new "type" property on the Container model defines whether the container is an execution or service container.
Containers map[string]Container `json:"containers,omitempty" yaml:"containers,omitempty"`
}
func (*BitriseDataModel) FillMissingDefaults ¶
func (config *BitriseDataModel) FillMissingDefaults() error
func (*BitriseDataModel) MinimalValidation ¶
func (config *BitriseDataModel) MinimalValidation() ([]string, error)
func (*BitriseDataModel) Normalize ¶
func (config *BitriseDataModel) Normalize() error
func (*BitriseDataModel) RemoveRedundantFields ¶
func (config *BitriseDataModel) RemoveRedundantFields() error
func (*BitriseDataModel) Validate ¶
func (config *BitriseDataModel) Validate() ([]string, error)
type BuildRunResultsModel ¶
type BuildRunResultsModel struct {
WorkflowID string `json:"workflow_id" yaml:"workflow_id"`
EventName string `json:"event_name" yaml:"event_name"`
ProjectType string `json:"project_type" yaml:"project_type"`
StartTime time.Time `json:"start_time" yaml:"start_time"`
StepmanUpdates map[string]int `json:"stepman_updates" yaml:"stepman_updates"`
SuccessSteps []StepRunResultsModel `json:"success_steps" yaml:"success_steps"`
FailedSteps []StepRunResultsModel `json:"failed_steps" yaml:"failed_steps"`
FailedSkippableSteps []StepRunResultsModel `json:"failed_skippable_steps" yaml:"failed_skippable_steps"`
SkippedSteps []StepRunResultsModel `json:"skipped_steps" yaml:"skipped_steps"`
}
func NewBuildRunResultsModel ¶ added in v2.30.0
func NewBuildRunResultsModel(workflowID string, start time.Time, projectType string) BuildRunResultsModel
func (BuildRunResultsModel) ExitCode ¶
func (buildRes BuildRunResultsModel) ExitCode() int
func (BuildRunResultsModel) HasFailedSkippableSteps ¶
func (buildRes BuildRunResultsModel) HasFailedSkippableSteps() bool
func (BuildRunResultsModel) IsBuildFailed ¶
func (buildRes BuildRunResultsModel) IsBuildFailed() bool
func (BuildRunResultsModel) IsStepLibUpdated ¶
func (buildRes BuildRunResultsModel) IsStepLibUpdated(stepLib string) bool
func (BuildRunResultsModel) OrderedResults ¶
func (buildRes BuildRunResultsModel) OrderedResults() []StepRunResultsModel
func (BuildRunResultsModel) ResultsCount ¶
func (buildRes BuildRunResultsModel) ResultsCount() int
type BuildRunStartModel ¶
type BundleContext ¶ added in v2.37.0
type BundleContext struct {
UUID string
Envs []envmanModels.EnvironmentItemModel
RunIfs []StepBundleRunIf
ExecutionContainer *ContainerConfig // resolved exec container from parent chain
ServiceContainers []ContainerConfig // accumulated services from parent chain
}
type ConfigFileTreeModel ¶
type ConfigFileTreeModel struct {
Path string `json:"path" yaml:"path"`
Contents string `json:"contents,omitempty" yaml:"contents,omitempty"`
Includes []ConfigFileTreeModel `json:"includes,omitempty" yaml:"includes,omitempty"`
}
func (*ConfigFileTreeModel) Merge ¶
func (configTree *ConfigFileTreeModel) Merge() (string, error)
type Container ¶
type Container struct {
Type ContainerType `json:"type,omitempty" yaml:"type,omitempty"`
Image string `json:"image,omitempty" yaml:"image,omitempty"`
Credentials DockerCredentials `json:"credentials,omitempty" yaml:"credentials,omitempty"`
Ports []string `json:"ports,omitempty" yaml:"ports,omitempty"`
Envs []envmanModels.EnvironmentItemModel `json:"envs,omitempty" yaml:"envs,omitempty"`
Options string `json:"options,omitempty" yaml:"options,omitempty"`
}
Container model defines a Docker container configuration.
type ContainerConfig ¶ added in v2.39.0
type ContainerPlan ¶
type ContainerPlan struct {
Image string `json:"image"`
}
type ContainerType ¶ added in v2.39.0
type ContainerType string
const ( ContainerTypeExecution ContainerType = "execution" ContainerTypeService ContainerType = "service" )
type Containerisable ¶ added in v2.39.0
type Containerisable struct {
// contains filtered or unexported fields
}
func (Containerisable) GetExecutionContainerConfig ¶ added in v2.39.0
func (c Containerisable) GetExecutionContainerConfig() (*ContainerConfig, error)
func (Containerisable) GetServiceContainerConfigs ¶ added in v2.39.0
func (c Containerisable) GetServiceContainerConfigs() ([]ContainerConfig, error)
type DockerCredentials ¶
type GraphPipelineAlwaysRunMode ¶
type GraphPipelineAlwaysRunMode string
const ( GraphPipelineAlwaysRunModeOff GraphPipelineAlwaysRunMode = "off" GraphPipelineAlwaysRunModeWorkflow GraphPipelineAlwaysRunMode = "workflow" )
func (*GraphPipelineAlwaysRunMode) UnmarshalJSON ¶
func (d *GraphPipelineAlwaysRunMode) UnmarshalJSON(data []byte) error
func (*GraphPipelineAlwaysRunMode) UnmarshalYAML ¶
func (d *GraphPipelineAlwaysRunMode) UnmarshalYAML(unmarshal func(interface{}) error) error
type GraphPipelineRunIfModel ¶
type GraphPipelineRunIfModel struct {
Expression string `json:"expression,omitempty" yaml:"expression,omitempty"`
}
type GraphPipelineWorkflowListItemModel ¶
type GraphPipelineWorkflowListItemModel map[string]GraphPipelineWorkflowModel
type GraphPipelineWorkflowModel ¶
type GraphPipelineWorkflowModel struct {
DependsOn []string `json:"depends_on,omitempty" yaml:"depends_on,omitempty"`
AbortOnFail bool `json:"abort_on_fail,omitempty" yaml:"abort_on_fail,omitempty"`
RunIf GraphPipelineRunIfModel `json:"run_if,omitempty" yaml:"run_if,omitempty"`
ShouldAlwaysRun GraphPipelineAlwaysRunMode `json:"should_always_run,omitempty" yaml:"should_always_run,omitempty"`
Uses string `json:"uses,omitempty" yaml:"uses,omitempty"`
Inputs []GraphPipelineWorkflowModelInput `json:"inputs,omitempty" yaml:"inputs,omitempty"`
Parallel string `json:"parallel,omitempty" yaml:"parallel,omitempty"`
}
type GraphPipelineWorkflowModelInput ¶
type GraphPipelineWorkflowModelInput map[string]interface{}
type PipelineModel ¶
type PipelineModel struct {
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
Triggers Triggers `json:"triggers,omitempty" yaml:"triggers,omitempty"`
StatusReportName string `json:"status_report_name,omitempty" yaml:"status_report_name,omitempty"`
Stages []StageListItemModel `json:"stages,omitempty" yaml:"stages,omitempty"`
Workflows GraphPipelineWorkflowListItemModel `json:"workflows,omitempty" yaml:"workflows,omitempty"`
Priority *int `json:"priority,omitempty" yaml:"priority,omitempty"`
}
type PullRequestGitEventTriggerItem ¶
type PullRequestGitEventTriggerItem struct {
Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty"`
Priority *int `json:"priority,omitempty" yaml:"priority,omitempty"`
DraftEnabled *bool `json:"draft_enabled,omitempty" yaml:"draft_enabled,omitempty"`
SourceBranch any `json:"source_branch,omitempty" yaml:"source_branch,omitempty"`
TargetBranch any `json:"target_branch,omitempty" yaml:"target_branch,omitempty"`
Label any `json:"label,omitempty" yaml:"label,omitempty"`
Comment any `json:"comment,omitempty" yaml:"comment,omitempty"`
CommitMessage any `json:"commit_message,omitempty" yaml:"commit_message,omitempty"`
ChangedFiles any `json:"changed_files,omitempty" yaml:"changed_files,omitempty"`
}
type PullRequestReadyState ¶
type PullRequestReadyState string
const ( PullRequestReadyStateDraft PullRequestReadyState = "draft" PullRequestReadyStateReadyForReview PullRequestReadyState = "ready_for_review" PullRequestReadyStateConvertedToReadyForReview PullRequestReadyState = "converted_to_ready_for_review" )
type PushGitEventTriggerItem ¶
type PushGitEventTriggerItem struct {
Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty"`
Priority *int `json:"priority,omitempty" yaml:"priority,omitempty"`
Branch any `json:"branch,omitempty" yaml:"branch,omitempty"`
CommitMessage any `json:"commit_message,omitempty" yaml:"commit_message,omitempty"`
ChangedFiles any `json:"changed_files,omitempty" yaml:"changed_files,omitempty"`
}
type StageListItemModel ¶
type StageListItemModel map[string]StageModel
type StageModel ¶
type StageModel struct {
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
ShouldAlwaysRun bool `json:"should_always_run,omitempty" yaml:"should_always_run,omitempty"`
AbortOnFail bool `json:"abort_on_fail,omitempty" yaml:"abort_on_fail,omitempty"`
RunIf string `json:"run_if,omitempty" yaml:"run_if,omitempty"`
Workflows []StageWorkflowListItemModel `json:"workflows,omitempty" yaml:"workflows,omitempty"`
}
type StageWorkflowListItemModel ¶
type StageWorkflowListItemModel map[string]StageWorkflowModel
type StageWorkflowModel ¶
type StageWorkflowModel struct {
RunIf string `json:"run_if,omitempty" yaml:"run_if,omitempty"`
}
type StepBundleListItemModel ¶
type StepBundleListItemModel struct {
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
RunIf *string `json:"run_if,omitempty" yaml:"run_if,omitempty"`
Inputs []envmanModels.EnvironmentItemModel `json:"inputs,omitempty" yaml:"inputs,omitempty"`
Environments []envmanModels.EnvironmentItemModel `json:"envs,omitempty" yaml:"envs,omitempty"`
ExecutionContainer stepmanModels.ContainerReference `json:"execution_container,omitempty" yaml:"execution_container,omitempty"`
ServiceContainers []stepmanModels.ContainerReference `json:"service_containers,omitempty" yaml:"service_containers,omitempty"`
}
func (*StepBundleListItemModel) Normalize ¶
func (bundle *StepBundleListItemModel) Normalize() error
func (*StepBundleListItemModel) Validate ¶
func (bundle *StepBundleListItemModel) Validate(stepBundleDefinition StepBundleModel, containerValidationCtx *containerValidationContext) error
type StepBundleModel ¶
type StepBundleModel struct {
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
RunIf string `json:"run_if,omitempty" yaml:"run_if,omitempty"`
Inputs []envmanModels.EnvironmentItemModel `json:"inputs,omitempty" yaml:"inputs,omitempty"`
Environments []envmanModels.EnvironmentItemModel `json:"envs,omitempty" yaml:"envs,omitempty"`
ExecutionContainer stepmanModels.ContainerReference `json:"execution_container,omitempty" yaml:"execution_container,omitempty"`
ServiceContainers []stepmanModels.ContainerReference `json:"service_containers,omitempty" yaml:"service_containers,omitempty"`
Steps []StepListItemStepOrBundleModel `json:"steps,omitempty" yaml:"steps,omitempty"`
}
func (*StepBundleModel) Normalize ¶
func (bundle *StepBundleModel) Normalize() error
func (*StepBundleModel) Validate ¶
func (bundle *StepBundleModel) Validate(stepBundleDefinitions map[string]StepBundleModel, containerValidationCtx *containerValidationContext) ([]string, error)
type StepBundlePlan ¶
type StepBundleRunIf ¶ added in v2.41.1
StepBundleRunIf pairs a Step Bundle's run_if statement with the Bundle's UUID. The UUID lets the runtime evaluate the statement once when the Bundle is entered and reuse that decision for every Step in the Bundle, so a Bundle Step's output cannot change the run_if outcome for its sibling Steps.
type StepExecutionPlan ¶
type StepExecutionPlan struct {
UUID string `json:"uuid"`
StepID string `json:"step_id"`
Step stepmanModels.StepModel `json:"-"`
// Step Bundle group
StepBundleUUID string `json:"step_bundle_uuid,omitempty"`
StepBundleEnvs []envmanModels.EnvironmentItemModel `json:"-"`
// StepBundleRunIfs stores the run_if statement of each including Step Bundle, paired with the
// Bundle's UUID so the statement can be evaluated once per Bundle (on entry) and cached.
// The first element is the run_if statement of the top most Step Bundle including the given Step.
// To execute the Step, all run_if statements must be evaluated to true.
StepBundleRunIfs []StepBundleRunIf `json:"-"`
// Containers
ExecutionContainer *ContainerConfig `json:"-"`
ServiceContainers []ContainerConfig `json:"-"`
// With (container) group
WithGroupUUID string `json:"with_group_uuid,omitempty"`
ContainerID string `json:"-"`
ServiceIDs []string `json:"-"`
}
type StepListItem ¶ added in v2.37.0
type StepListItem struct {
// contains filtered or unexported fields
}
func NewStepListItemFromBundleStep ¶ added in v2.37.0
func NewStepListItemFromBundleStep(source StepListItemStepOrBundleModel) (*StepListItem, error)
func NewStepListItemFromWithStep ¶ added in v2.37.0
func NewStepListItemFromWithStep(source StepListStepItemModel) (*StepListItem, error)
func NewStepListItemFromWorkflowStep ¶ added in v2.37.0
func NewStepListItemFromWorkflowStep(source StepListItemModel) (*StepListItem, error)
func (*StepListItem) GetBundle ¶ added in v2.37.0
func (i *StepListItem) GetBundle() *StepBundleListItemModel
func (*StepListItem) GetKeyAndType ¶ added in v2.37.0
func (i *StepListItem) GetKeyAndType() (string, StepListItemType)
func (*StepListItem) GetStep ¶ added in v2.37.0
func (i *StepListItem) GetStep() *stepmanModels.StepModel
func (*StepListItem) GetWithGroup ¶ added in v2.37.0
func (i *StepListItem) GetWithGroup() *WithModel
type StepListItemModel ¶
type StepListItemModel map[string]interface{}
StepListItemModel is a map representing a step list item of a workflow, the value is either a Step, a With Group or Step Bundle.
func (*StepListItemModel) GetBundle ¶
func (stepListItem *StepListItemModel) GetBundle() (*StepBundleListItemModel, error)
func (*StepListItemModel) GetKeyAndType ¶
func (stepListItem *StepListItemModel) GetKeyAndType() (string, StepListItemType, error)
func (*StepListItemModel) GetStep ¶
func (stepListItem *StepListItemModel) GetStep() (*stepmanModels.StepModel, error)
func (*StepListItemModel) GetWith ¶
func (stepListItem *StepListItemModel) GetWith() (*WithModel, error)
func (*StepListItemModel) UnmarshalJSON ¶
func (stepListItem *StepListItemModel) UnmarshalJSON(b []byte) error
func (*StepListItemModel) UnmarshalYAML ¶
func (stepListItem *StepListItemModel) UnmarshalYAML(unmarshal func(interface{}) error) error
type StepListItemStepOrBundleModel ¶
StepListItemStepOrBundleModel is a map representing a step list item of a Step Bundle, the value is either a Step or a Step Bundle.
func (*StepListItemStepOrBundleModel) GetBundle ¶
func (stepListItem *StepListItemStepOrBundleModel) GetBundle() (*StepBundleListItemModel, error)
func (*StepListItemStepOrBundleModel) GetKeyAndType ¶
func (stepListItem *StepListItemStepOrBundleModel) GetKeyAndType() (string, StepListItemType, error)
func (*StepListItemStepOrBundleModel) GetStep ¶
func (stepListItem *StepListItemStepOrBundleModel) GetStep() (*stepmanModels.StepModel, error)
func (*StepListItemStepOrBundleModel) UnmarshalJSON ¶
func (stepListItem *StepListItemStepOrBundleModel) UnmarshalJSON(b []byte) error
func (*StepListItemStepOrBundleModel) UnmarshalYAML ¶
func (stepListItem *StepListItemStepOrBundleModel) UnmarshalYAML(unmarshal func(interface{}) error) error
type StepListItemType ¶
type StepListItemType int
const ( StepListItemTypeUnknown StepListItemType = iota StepListItemTypeStep StepListItemTypeWith StepListItemTypeBundle )
type StepListStepBundleItemModel ¶
type StepListStepBundleItemModel map[string]StepBundleListItemModel
type StepListStepItemModel ¶
type StepListStepItemModel map[string]stepmanModels.StepModel
StepListStepItemModel is a map representing a step list item of a With group, the value is a Step.
func (*StepListStepItemModel) GetStepIDAndStep ¶
func (stepListStepItem *StepListStepItemModel) GetStepIDAndStep() (string, stepmanModels.StepModel, error)
type StepListWithItemModel ¶
type StepRunResultsModel ¶
type StepRunResultsModel struct {
StepInfo stepmanModels.StepInfoModel `json:"step_info" yaml:"step_info"`
StepInputs map[string]string `json:"step_inputs" yaml:"step_inputs"`
Status StepRunStatus `json:"status" yaml:"status"`
Idx int `json:"idx" yaml:"idx"`
RunTime time.Duration `json:"run_time" yaml:"run_time"`
StartTime time.Time `json:"start_time" yaml:"start_time"`
ErrorStr string `json:"error_str" yaml:"error_str"`
ExitCode int `json:"exit_code" yaml:"exit_code"`
Timeout time.Duration `json:"-"`
NoOutputTimeout time.Duration `json:"-"`
}
func (StepRunResultsModel) StatusReasonAndErrors ¶
func (s StepRunResultsModel) StatusReasonAndErrors() (string, []StepError)
type StepRunStatus ¶
type StepRunStatus int
StepRunStatus ...
const ( StepRunStatusCodeSuccess StepRunStatus = 0 StepRunStatusCodeFailed StepRunStatus = 1 StepRunStatusCodeFailedSkippable StepRunStatus = 2 StepRunStatusCodeSkipped StepRunStatus = 3 StepRunStatusCodeSkippedWithRunIf StepRunStatus = 4 StepRunStatusCodePreparationFailed StepRunStatus = 5 StepRunStatusAbortedWithCustomTimeout StepRunStatus = 7 // step times out due to a custom timeout StepRunStatusAbortedWithNoOutputTimeout StepRunStatus = 8 // step times out due to no output received (hang) )
func NewStepRunStatus ¶
func NewStepRunStatus(status string) StepRunStatus
func (StepRunStatus) Name ¶
func (s StepRunStatus) Name() string
func (StepRunStatus) String ¶
func (s StepRunStatus) String() string
type TagGitEventTriggerItem ¶
type TestResultStepInfo ¶
type ToolConfigModel ¶ added in v2.33.0
type ToolConfigModel struct {
Provider string `json:"provider,omitempty" yaml:"provider,omitempty"`
// Extra tool-plugins on top of Bitrise-vetted integrations. This is very provider-specific, but the map value is a URL to the plugin source.
ExtraPlugins map[ToolID]string `json:"extra_plugins,omitempty" yaml:"extra_plugins,omitempty"`
// FastInstall enables the use of nixpkgs backend for faster tool installation.
// Default behavior if unset: see toolprovider.selectFastInstall().
FastInstall *bool `json:"fast_install,omitempty" yaml:"fast_install,omitempty"`
}
type ToolsModel ¶ added in v2.33.0
ToolsModel is a mapping of tool IDs to their versions (see package toolprovider about the version syntax)
type TriggerEventType ¶
type TriggerEventType string
const ( TriggerEventTypeCodePush TriggerEventType = "code-push" TriggerEventTypePullRequest TriggerEventType = "pull-request" TriggerEventTypeTag TriggerEventType = "tag" TriggerEventTypeUnknown TriggerEventType = "unknown" )
type TriggerItemType ¶
type TriggerItemType string
const ( CodePushType TriggerItemType = "push" PullRequestType TriggerItemType = "pull_request" TagPushType TriggerItemType = "tag" )
type TriggerMapItemModel ¶
type TriggerMapItemModel struct {
// Trigger Item shared properties
Type TriggerItemType `json:"type,omitempty" yaml:"type,omitempty"`
Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty"`
PipelineID string `json:"pipeline,omitempty" yaml:"pipeline,omitempty"`
WorkflowID string `json:"workflow,omitempty" yaml:"workflow,omitempty"`
// Code Push Item conditions
PushBranch interface{} `json:"push_branch,omitempty" yaml:"push_branch,omitempty"`
// Code Push and Pull Request Item conditions
CommitMessage interface{} `json:"commit_message,omitempty" yaml:"commit_message,omitempty"`
ChangedFiles interface{} `json:"changed_files,omitempty" yaml:"changed_files,omitempty"`
// Tag Push Item conditions
Tag interface{} `json:"tag,omitempty" yaml:"tag,omitempty"`
// Pull Request Item conditions
PullRequestSourceBranch interface{} `json:"pull_request_source_branch,omitempty" yaml:"pull_request_source_branch,omitempty"`
PullRequestTargetBranch interface{} `json:"pull_request_target_branch,omitempty" yaml:"pull_request_target_branch,omitempty"`
DraftPullRequestEnabled *bool `json:"draft_pull_request_enabled,omitempty" yaml:"draft_pull_request_enabled,omitempty"`
PullRequestLabel interface{} `json:"pull_request_label,omitempty" yaml:"pull_request_label,omitempty"`
PullRequestComment interface{} `json:"pull_request_comment,omitempty" yaml:"pull_request_comment,omitempty"`
// Deprecated properties
Pattern string `json:"pattern,omitempty" yaml:"pattern,omitempty"`
IsPullRequestAllowed bool `json:"is_pull_request_allowed,omitempty" yaml:"is_pull_request_allowed,omitempty"`
}
func (TriggerMapItemModel) IsDraftPullRequestEnabled ¶
func (item TriggerMapItemModel) IsDraftPullRequestEnabled() bool
func (TriggerMapItemModel) MatchWithParams ¶
func (item TriggerMapItemModel) MatchWithParams(pushBranch, prSourceBranch, prTargetBranch string, prReadyState PullRequestReadyState, tag string) (bool, error)
func (TriggerMapItemModel) Normalized ¶
func (item TriggerMapItemModel) Normalized(idx int) (TriggerMapItemModel, error)
Normalized casts trigger item values from map[interface{}]interface{} to map[string]interface{} to support JSON marshalling of the bitrise.yml.
type TriggerMapModel ¶
type TriggerMapModel []TriggerMapItemModel
func (TriggerMapModel) FirstMatchingTarget ¶
func (triggerMap TriggerMapModel) FirstMatchingTarget(pushBranch, prSourceBranch, prTargetBranch string, prReadyState PullRequestReadyState, tag string) (string, string, error)
func (TriggerMapModel) Normalized ¶
func (triggerMap TriggerMapModel) Normalized() ([]TriggerMapItemModel, error)
type Triggers ¶
type Triggers struct {
Enabled *bool `json:"enabled,omitempty" yaml:"enabled,omitempty"`
PushTriggers []PushGitEventTriggerItem `json:"push,omitempty" yaml:"push,omitempty"`
PullRequestTriggers []PullRequestGitEventTriggerItem `json:"pull_request,omitempty" yaml:"pull_request,omitempty"`
TagTriggers []TagGitEventTriggerItem `json:"tag,omitempty" yaml:"tag,omitempty"`
}
func (*Triggers) UnmarshalYAML ¶
UnmarshalYAML implements the yaml.Unmarshaler interface for Triggers, allowing additional validation of the triggers YAML configuration.
type WithGroupContext ¶ added in v2.37.0
type WithGroupPlan ¶
type WithGroupPlan struct {
Services []ContainerPlan `json:"services,omitempty"`
Container ContainerPlan `json:"container,omitempty"`
}
WithGroupPlan ... TODO: Old container plan, to be removed when containerisation using "With groups" is sunsetted
type WithModel ¶
type WithModel struct {
ContainerID string `json:"container,omitempty" yaml:"container,omitempty"`
ServiceIDs []string `json:"services,omitempty" yaml:"services,omitempty"`
Steps []StepListStepItemModel `json:"steps,omitempty" yaml:"steps,omitempty"`
}
type WorkflowExecutionPlan ¶
type WorkflowExecutionPlan struct {
UUID string `json:"uuid"`
WorkflowID string `json:"workflow_id"`
Steps []StepExecutionPlan `json:"steps"`
WorkflowTitle string `json:"-"`
IsSteplibOfflineMode bool `json:"-"`
}
type WorkflowListItemModel ¶
type WorkflowListItemModel map[string]WorkflowModel
type WorkflowModel ¶
type WorkflowModel struct {
Title string `json:"title,omitempty" yaml:"title,omitempty"`
Summary string `json:"summary,omitempty" yaml:"summary,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
Triggers Triggers `json:"triggers,omitempty" yaml:"triggers,omitempty"`
StatusReportName string `json:"status_report_name,omitempty" yaml:"status_report_name,omitempty"`
BeforeRun []string `json:"before_run,omitempty" yaml:"before_run,omitempty"`
AfterRun []string `json:"after_run,omitempty" yaml:"after_run,omitempty"`
Environments []envmanModels.EnvironmentItemModel `json:"envs,omitempty" yaml:"envs,omitempty"`
Steps []StepListItemModel `json:"steps,omitempty" yaml:"steps,omitempty"`
Priority *int `json:"priority,omitempty" yaml:"priority,omitempty"`
Tools ToolsModel `json:"tools,omitempty" yaml:"tools,omitempty"`
Meta map[string]interface{} `json:"meta,omitempty" yaml:"meta,omitempty"`
}
func (*WorkflowModel) FillMissingDefaults ¶
func (workflow *WorkflowModel) FillMissingDefaults(title string) error
func (*WorkflowModel) Normalize ¶
func (workflow *WorkflowModel) Normalize() error
func (*WorkflowModel) Validate ¶
func (workflow *WorkflowModel) Validate() error
type WorkflowRunModes ¶
type WorkflowRunPlan ¶
type WorkflowRunPlan struct {
Version string `json:"version"`
LogFormatVersion string `json:"log_format_version"`
CIMode bool `json:"ci_mode"`
PRMode bool `json:"pr_mode"`
DebugMode bool `json:"debug_mode"`
IsSteplibOfflineMode bool `json:"-"`
NoOutputTimeoutMode bool `json:"no_output_timeout_mode"`
SecretFilteringMode bool `json:"secret_filtering_mode"`
SecretEnvsFilteringMode bool `json:"secret_envs_filtering_mode"`
ExecutionPlan []WorkflowExecutionPlan `json:"execution_plan"`
StepBundlePlans map[string]StepBundlePlan `json:"step_bundles,omitempty"`
// ----
// Container plans
// step execution container id to container plan
ExecutionContainerPlans map[string]ContainerPlan `json:"-"`
// service container id to container plan
ServiceContainerPlans map[string]ContainerPlan `json:"-"`
// TODO: Old container plan, to be removed when containerisation using "With groups" is sunsetted
WithGroupPlans map[string]WithGroupPlan `json:"with_groups,omitempty"`
}
type WorkflowRunPlanBuilder ¶ added in v2.37.0
type WorkflowRunPlanBuilder struct {
// contains filtered or unexported fields
}
func NewWorkflowRunPlanBuilder ¶ added in v2.37.0
func NewWorkflowRunPlanBuilder(workflows map[string]WorkflowModel, stepBundles map[string]StepBundleModel, containers map[string]Container, services map[string]Container, uuidProvider func() string) *WorkflowRunPlanBuilder
func (*WorkflowRunPlanBuilder) Build ¶ added in v2.37.0
func (builder *WorkflowRunPlanBuilder) Build(modes WorkflowRunModes, targetWorkflowID string) (WorkflowRunPlan, error)