mirror of
https://github.com/thegeeklab/drone-yaml.git
synced 2024-11-17 23:50:40 +00:00
77 lines
2.0 KiB
Go
77 lines
2.0 KiB
Go
|
package circleci
|
||
|
|
||
|
type (
|
||
|
// Config defines the pipeline configuration.
|
||
|
Config struct {
|
||
|
// Version specifies the yaml configuration
|
||
|
// file version.
|
||
|
Version string
|
||
|
|
||
|
// Jobs defines a list of pipeline jobs.
|
||
|
Jobs []*Job
|
||
|
|
||
|
// Workflows are used to orchestrate jobs.
|
||
|
Workflows struct {
|
||
|
Version string
|
||
|
List map[string]*Workflow `yaml:",inline"`
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Workflow ochestrates one or more jobs.
|
||
|
Workflow struct {
|
||
|
Jobs []string
|
||
|
}
|
||
|
|
||
|
// Job defines a pipeline job.
|
||
|
Job struct {
|
||
|
// Name of the stage.
|
||
|
Name string
|
||
|
|
||
|
// Docker configures a Docker executor.
|
||
|
Docker Docker
|
||
|
|
||
|
// Environment variables passed to the executor.
|
||
|
Environment map[string]string
|
||
|
|
||
|
// Steps configures the Job steps.
|
||
|
Steps map[string]Step
|
||
|
|
||
|
// Branches limits execution by branch.
|
||
|
Branches []struct {
|
||
|
Only []string
|
||
|
Ignore []string
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Step defines a build execution unit.
|
||
|
Step struct {
|
||
|
Run Run
|
||
|
AddSSHKeys map[string]interface{} `yaml:"add_ssh_keys"`
|
||
|
AttachWorkspace map[string]interface{} `yaml:"attach_workspace"`
|
||
|
Checkout map[string]interface{} `yaml:"checkout"`
|
||
|
Deploy map[string]interface{} `yaml:"deploy"`
|
||
|
PersistToWorkspace map[string]interface{} `yaml:"persist_to_workspace"`
|
||
|
RestoreCache map[string]interface{} `yaml:"restore_cache"`
|
||
|
SaveCache map[string]interface{} `yaml:"save_cache"`
|
||
|
SetupRemoteDocker map[string]interface{} `yaml:"setup_remote_docker"`
|
||
|
StoreArtifacts map[string]interface{} `yaml:"store_artifacts"`
|
||
|
StoreTestResults map[string]interface{} `yaml:"store_test_results"`
|
||
|
}
|
||
|
)
|
||
|
|
||
|
// // UnmarshalYAML implements custom parsing for the stage section of the yaml
|
||
|
// // to cleanup the structure a bit.
|
||
|
// func (s *Stage) UnmarshalYAML(unmarshal func(interface{}) error) error {
|
||
|
// in := []struct {
|
||
|
// Step *Step
|
||
|
// }{}
|
||
|
// err := unmarshal(&in)
|
||
|
// if err != nil {
|
||
|
// return err
|
||
|
// }
|
||
|
// for _, step := range in {
|
||
|
// s.Steps = append(s.Steps, step.Step)
|
||
|
// }
|
||
|
// return nil
|
||
|
// }
|