Documentation ¶
Index ¶
- Constants
- Variables
- func FilterAccount(account *GitAccount)
- func FilterActivity(activity *Activity)
- func FilterPipeline(pipeline *Pipeline)
- func FilterSCMSetting(setting *SCMSetting)
- func NewSchema() *client.Schemas
- func ToPipelineCollections(apiContext *api.ApiContext, pipelines []*Pipeline) []interface{}
- type Activity
- type ActivityStage
- type ActivityStep
- type CIService
- type Credential
- type CronTrigger
- type Empty
- type Error
- type GitAccount
- type GitRepository
- type Pipeline
- type PipelineConditions
- type PipelineContent
- type PipelineProvider
- type PipelineSetting
- type SCMSetting
- type SCManager
- type Stage
- type Step
Constants ¶
View Source
const ( ActivityStepWaiting = "Waiting" ActivityStepBuilding = "Building" ActivityStepSuccess = "Success" ActivityStepFail = "Fail" ActivityStepSkip = "Skipped" ActivityStepAbort = "Abort" ActivityStageWaiting = "Waiting" ActivityStagePending = "Pending" ActivityStageBuilding = "Building" ActivityStageSuccess = "Success" ActivityStageFail = "Fail" ActivityStageDenied = "Denied" ActivityStageSkip = "Skipped" ActivityStageAbort = "Abort" ActivityWaiting = "Waiting" ActivityPending = "Pending" ActivityBuilding = "Building" ActivitySuccess = "Success" ActivityFail = "Fail" ActivityDenied = "Denied" ActivityAbort = "Abort" )
View Source
const StepTypeBuild = "build"
View Source
const StepTypeDeploy = "deploy"
View Source
const StepTypeSCM = "scm"
View Source
const StepTypeService = "service"
View Source
const StepTypeTask = "task"
View Source
const StepTypeUpgradeCatalog = "upgradeCatalog"
View Source
const StepTypeUpgradeService = "upgradeService"
View Source
const StepTypeUpgradeStack = "upgradeStack"
View Source
const TriggerTypeCron = "cron"
View Source
const TriggerTypeManual = "manual"
View Source
const TriggerTypeWebhook = "webhook"
Variables ¶
View Source
var ErrPipelineNotFound = errors.New("Pipeline Not found")
View Source
var PreservedEnvs = [...]string{"CICD_GIT_COMMIT", "CICD_GIT_BRANCH",
"CICD_GIT_URL", "CICD_PIPELINE_NAME", "CICD_PIPELINE_ID",
"CICD_TRIGGER_TYPE", "CICD_NODE_NAME", "CICD_ACTIVITY_ID",
"CICD_ACTIVITY_SEQUENCE",
}
Functions ¶
func FilterAccount ¶
func FilterAccount(account *GitAccount)
func FilterActivity ¶
func FilterActivity(activity *Activity)
func FilterPipeline ¶
func FilterPipeline(pipeline *Pipeline)
func FilterSCMSetting ¶
func FilterSCMSetting(setting *SCMSetting)
func ToPipelineCollections ¶
func ToPipelineCollections(apiContext *api.ApiContext, pipelines []*Pipeline) []interface{}
Types ¶
type Activity ¶
type Activity struct { client.Resource Id string `json:"id,omitempty"` Pipeline Pipeline `json:"pipelineSource,omitempty"` PipelineName string `json:"pipelineName,omitempty"` PipelineVersion string `json:"pipelineVersion,omitempty"` RunSequence int `json:"runSequence,omitempty"` CommitInfo string `json:"commitInfo,omitempty"` Status string `json:"status,omitempty"` FailMessage string `json:"failMessage,omitempty"` PendingStage int `json:"pendingStage,omitempty"` StartTS int64 `json:"start_ts,omitempty"` StopTS int64 `json:"stop_ts,omitempty"` NodeName string `json:"nodename,omitempty"` ActivityStages []*ActivityStage `json:"activity_stages,omitempty"` EnvVars map[string]string `json:"envVars,omitempty"` TriggerType string `json:"triggerType,omitempty"` }
func ToActivityResource ¶
func ToActivityResource(apiContext *api.ApiContext, a *Activity) *Activity
func (*Activity) CanApprove ¶
type ActivityStage ¶
type ActivityStage struct { ActivityId string `json:"activity_id,omitempty"` Name string `json:"name,omitempty"` NeedApproval bool `json:"need_approval,omitempty"` Approvers []string `json:"approvers,omitempty"` ActivitySteps []*ActivityStep `json:"activity_steps,omitempty"` StartTS int64 `json:"start_ts,omitempty"` Duration int64 `json:"duration,omitempty"` Status string `json:"status,omitempty"` RawOutput string `json:"rawOutput,omitempty"` }
type ActivityStep ¶
type Credential ¶
type CronTrigger ¶
type GitAccount ¶
type GitAccount struct { client.Resource //private or shared across environment Private bool `json:"private,omitempty"` AccountType string `json:"accountType,omitempty"` RancherUserID string `json:"rancherUserId,omitempty"` Status string `json:"status,omitempty"` Login string `json:"login,omitempty"` Name string `json:"name,omitempty"` AvatarURL string `json:"avatar_url,omitempty"` HTMLURL string `json:"html_url,omitempty"` AccessToken string `json:"accessToken,omitempty"` }
func ToAccountResource ¶
func ToAccountResource(apiContext *api.ApiContext, account *GitAccount) *GitAccount
type GitRepository ¶
type GitRepository struct { client.Resource CloneURL string `json:"clone_url,omitempty"` ScmType string `json:"scmType,omitempty"` Permissions map[string]bool `json:"permissions,omitempty"` }
func ToRepositoryResource ¶
func ToRepositoryResource(apiContext *api.ApiContext, repository *GitRepository) *GitRepository
type Pipeline ¶
type Pipeline struct { client.Resource PipelineContent }
func ToPipelineResource ¶
func ToPipelineResource(apiContext *api.ApiContext, pipeline *Pipeline) *Pipeline
type PipelineConditions ¶
type PipelineContent ¶
type PipelineContent struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` IsActivate bool `json:"isActivate" yaml:"isActivate"` VersionSequence string `json:"-" yaml:"-"` Status string `json:"status,omitempty" yaml:"status,omitempty"` RunCount int `json:"runCount" yaml:"runCount,omitempty"` LastRunId string `json:"lastRunId,omitempty" yaml:"lastRunId,omitempty"` LastRunStatus string `json:"lastRunStatus,omitempty" yaml:"lastRunStatus,omitempty"` LastRunTime int64 `json:"lastRunTime,omitempty" yaml:"lastRunTime,omitempty"` NextRunTime int64 `json:"nextRunTime,omitempty" yaml:"nextRunTime,omitempty"` CommitInfo string `json:"commitInfo,omitempty" yaml:"commitInfo,omitempty"` Repository string `json:"repository,omitempty" yaml:"repository,omitempty"` Branch string `json:"branch,omitempty" yaml:"branch,omitempty"` TargetImage string `json:"targetImage,omitempty" yaml:"target-image,omitempty"` File string `json:"file,omitempty" yaml:"file,omitempty"` WebHookId int `json:"webhookId,omitempty" yaml:"webhookId,omitempty"` WebHookToken string `json:"webhookToken,omitempty" yaml:"webhookToken,omitempty"` //user defined environment variables Parameters []string `json:"parameters,omitempty" yaml:"parameters,omitempty"` //for import Templates map[string]string `json:"templates,omitempty" yaml:"templates,omitempty"` //trigger CronTrigger CronTrigger `json:"cronTrigger,omitempty" yaml:"cronTrigger,omitempty"` Stages []*Stage `json:"stages,omitempty" yaml:"stages,omitempty"` KeepWorkspace bool `json:"keepWorkspace,omitempty" yaml:"keepWorkspace,omitempty"` }
type PipelineProvider ¶
type PipelineProvider interface { RunPipeline(*Pipeline, string) (*Activity, error) RerunActivity(*Activity) error RunStage(*Activity, int) error RunStep(*Activity, int, int) error StopActivity(*Activity) error SyncActivity(*Activity) error GetStepLog(*Activity, int, int, map[string]interface{}) (string, error) OnActivityCompelte(*Activity) OnCreateAccount(*GitAccount) error OnDeleteAccount(*GitAccount) error Reset() error }
type PipelineSetting ¶
type PipelineSetting struct { client.Resource Status string `json:"status,omitempty" yaml:"status,omitempty"` }
func ToPipelineSettingResource ¶
func ToPipelineSettingResource(apiContext *api.ApiContext, setting *PipelineSetting) *PipelineSetting
type SCMSetting ¶
type SCMSetting struct { client.Resource IsAuth bool `json:"isAuth" yaml:"isAuth"` Status string `json:"status,omitempty" yaml:"status,omitempty"` ScmType string `json:"scmType,omitempty" yaml:"scmType,omitempty"` HostName string `json:"hostName,omitempty" yaml:"hostName,omitempty"` Scheme string `json:"scheme,omitempty" yaml:"scheme,omitempty"` HomePage string `json:"homepage,omitempty" yaml:"homepage,omitempty"` ClientID string `json:"clientID,omitempty" yaml:"clientID,omitempty"` ClientSecret string `json:"clientSecret,omitempty" yaml:"clientSecret,omitempty"` RedirectURL string `json:"redirectURL,omitempty" yaml:"redirectURL,omitempty"` }
func ToSCMSettingResource ¶
func ToSCMSettingResource(apiContext *api.ApiContext, setting *SCMSetting) *SCMSetting
type SCManager ¶
type SCManager interface { GetType() string Config(setting *SCMSetting) SCManager GetRepos(account *GitAccount) ([]*GitRepository, error) GetAccount(accessToken string) (*GitAccount, error) OAuth(redirectURL string, clientID string, clientSecret string, code string) (*GitAccount, error) DeleteWebhook(pipeline *Pipeline, gitToken string) error CreateWebhook(pipeline *Pipeline, gitToken string, ciEndpoint string) error VerifyWebhookPayload(pipeline *Pipeline, req *http.Request) bool }
scm stands for Source Code Manager
type Stage ¶
type Stage struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` NeedApprove bool `json:"needApprove" yaml:"needApprove,omitempty"` Parallel bool `json:"parallel" yaml:"parallel,omitempty"` //Condition string `json:"condition,omitempty" yaml:"condition,omitempty"` Conditions *PipelineConditions `json:"conditions,omitempty" yaml:"conditions,omitempty"` Approvers []string `json:"approvers,omitempty" yaml:"approvers,omitempty"` Steps []*Step `json:"steps,omitempty" yaml:"steps,omitempty"` }
type Step ¶
type Step struct { Name string `json:"name,omitempty" yaml:"name,omitempty"` Type string `json:"type,omitempty" yaml:"type,omitempty"` //Step timeout in minutes Timeout int `json:"timeout,omitempty" yaml:"timeout,omitempty"` //Condition string `json:"condition,omitempty" yaml:"condition,omitempty"` Conditions *PipelineConditions `json:"conditions,omitempty" yaml:"conditions,omitempty"` //---SCM step Repository string `json:"repository,omitempty" yaml:"repository,omitempty"` Branch string `json:"branch,omitempty" yaml:"branch,omitempty"` GitUser string `json:"gitUser,omitempty" yaml:"gitUser,omitempty"` Webhook bool `json:"webhook" yaml:"webhook,omitempty"` //---Build step Dockerfile string `json:"dockerFileContent,omitempty" yaml:"dockerFileContent,omitempty"` BuildPath string `json:"buildPath,omitempty" yaml:"buildPath,omitempty"` DockerfilePath string `json:"dockerFilePath,omittempty" yaml:"dockerFilePath,omitempty"` TargetImage string `json:"targetImage,omitempty" yaml:"targetImage,omitempty"` PushFlag bool `json:"push" yaml:"push,omitempty"` //---task step Image string `json:"image,omitempty" yaml:"image,omitempty"` IsService bool `json:"isService" yaml:"isService,omitempty"` Alias string `json:"alias,omitempty" yaml:"alias,omitempty"` ShellScript string `json:"shellScript,omitempty" yaml:"shellScript,omitempty"` Entrypoint string `json:"entrypoint,omitempty" yaml:"enrtypoint,omitempty"` Args string `json:"args,omitempty" yaml:"args,omitempty"` Env []string `json:"env,omitempty" yaml:"env,omitempty"` Services []*CIService `json:"services,omitempty" yaml:"services,omitempty"` //---upgradeService step ImageTag string `json:"imageTag,omitempty" yaml:"imageTag,omitempty"` ServiceSelector map[string]string `json:"serviceSelector,omitempty" yaml:"serviceSelector,omitempty"` BatchSize int `json:"batchSize,omitempty" yaml:"batchSize,omitempty"` Interval int `json:"interval,omitempty" yaml:"interval,omitempty"` StartFirst bool `json:"startFirst" yaml:"startFirst,omitempty"` Endpoint string `json:"endpoint,omitempty" yaml:"endpoint,omitempty"` Accesskey string `json:"accesskey,omitempty" yaml:"accesskey,omitempty"` Secretkey string `json:"secretkey,omitempty" yaml:"secretkey,omitempty"` //---upgradeStack step //Endpoint,Accesskey,Secretkey StackName string `json:"stackName,omitempty" yaml:"stackName,omitempty"` DockerCompose string `json:"dockerCompose,omitempty" yaml:"dockerCompose,omitempty"` RancherCompose string `json:"rancherCompose,omitempty" yaml:"rancherCompose,omitempty"` //---upgradeCatalog step //Endpoint,Accesskey,Secretkey,StackName, ExternalId string `json:"externalId,omitempty" yaml:"externalId,omitempty"` DeployFlag bool `json:"deploy" yaml:"deploy,omitempty"` Templates map[string]string `json:"templates,omitempty" yaml:"templates,omitempty"` Answers string `json:"answerString,omitempty" yaml:"answerString,omitempty"` }
Click to show internal directories.
Click to hide internal directories.