github.com/drone/go-convert@v0.0.0-20240307072510-6bd371c65e61/convert/travis/yaml/pipeline.go (about) 1 // Copyright 2022 Harness, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package yaml 16 17 type ( 18 // Pipeline defines a gitlab pipeline. 19 // https://config.travis-ci.com/index 20 Pipeline struct { 21 Language string `yaml:"language,omitempty"` 22 OS Stringorslice `yaml:"os,omitempty"` 23 OSXImage Stringorslice `yaml:"osx_image,omitempty"` 24 Arch Stringorslice `yaml:"arch,omitempty"` 25 Addons *Addons `yaml:"addons,omitempty"` 26 Branches *Branches `yaml:"branches,omitempty"` 27 Cache *Cache `yaml:"cache,omitempty"` 28 Compiler Stringorslice `yaml:"compiler,omitempty"` 29 Deploy interface{} `yaml:"deploy,omitempty"` // TODO 30 Dist string `yaml:"dist,omitempty"` 31 Env *Env `yaml:"env,omitempty"` 32 Git *Git `yaml:"git,omitempty"` 33 If string `yaml:"if,omitempty"` 34 Import *Imports `yaml:"import,omitempty"` 35 Jobs *Jobs `yaml:"jobs,omitempty"` 36 Notifications *Notifications `yaml:"notifications,omitempty"` // TODO 37 Services Stringorslice `yaml:"services,omitempty"` 38 Stages *Stages `yaml:"stages,omitempty"` 39 Version string `yaml:"version,omitempty"` 40 41 BeforeInstall Stringorslice `yaml:"before_install,omitempty"` 42 Install Stringorslice `yaml:"install,omitempty"` 43 BeforeScript Stringorslice `yaml:"before_script,omitempty"` 44 Script Stringorslice `yaml:"script,omitempty"` 45 BeforeCache Stringorslice `yaml:"before_cache,omitempty"` 46 AfterSuccess Stringorslice `yaml:"after_success,omitempty"` 47 AfterFailure Stringorslice `yaml:"after_failure,omitempty"` 48 BeforeDeploy Stringorslice `yaml:"before_deploy,omitempty"` 49 AfterDeploy Stringorslice `yaml:"after_deploy,omitempty"` 50 AfterScript Stringorslice `yaml:"after_script,omitempty"` 51 52 // 53 // Language Keywords 54 // 55 56 // Android 57 // https://config.travis-ci.com/ref/language/android 58 Android interface{} `yaml:"android,omitempty"` // matrix expand key (TODO) 59 60 // Clojure 61 Lein string `yaml:"lein,omitempty"` 62 63 // Crystal 64 Crystal Stringorslice `yaml:"crystal,omitempty"` // matrix expand key 65 66 // D 67 D Stringorslice `yaml:"d,omitempty"` // matrix expand key 68 69 // Dart Language 70 Dart Stringorslice `yaml:"dart,omitempty"` // matrix expand key 71 DartTask interface{} `yaml:"dart_task,omitempty"` // matrix expand key (TODO) 72 DartWithContentShell bool `yaml:"with_content_shell,omitempty"` 73 74 // Dotnet Language (C#) 75 Dotnet Stringorslice `yaml:"dotnet,omitempty"` // matrix expand key 76 DotnetMono Stringorslice `yaml:"mono,omitempty"` // matrix expand key 77 DotnetSolution Stringorslice `yaml:"solution,omitempty"` // matrix expand key 78 79 // Elixir Language 80 Elixir Stringorslice `yaml:"elixir,omitempty"` // matrix expand key 81 82 // Elm Language 83 Elm Stringorslice `yaml:"elm,omitempty"` // matrix expand key 84 ElmFormat string `yaml:"elm_format,omitempty"` 85 ElmTest string `yaml:"elm_test,omitempty"` 86 87 // Erlang Language 88 ErlangOTP Stringorslice `yaml:"otp_release,omitempty"` // matrix expand key 89 90 // Go Language 91 Go Stringorslice `yaml:"go,omitempty"` // matrix expand key 92 GoBuildArgs string `yaml:"gobuild_args,omitempty"` 93 GoImportPath string `yaml:"go_import_path,omitempty"` 94 95 // Hack Language 96 HHVM Stringorslice `yaml:"hhvm,omitempty"` // matrix expand key 97 98 // Haxe Language 99 Haxe Stringorslice `yaml:"haxe,omitempty"` // matrix expand key 100 HaxeXML Stringorslice `yaml:"hxml,omitempty"` 101 HaxeNeko string `yaml:"neko,omitempty"` 102 103 // Haskell Language 104 GHC Stringorslice `yaml:"ghc,omitempty"` // matrix expand key 105 106 // Java Language 107 JDK Stringorslice `yaml:"jdk,omitempty"` // matrix expand key 108 109 // Javascript Language 110 Node Stringorslice `yaml:"node_js,omitempty"` // matrix expand key 111 NodeNpmArgs string `yaml:"npm_args,omitempty"` 112 113 // Julia Language 114 Julia Stringorslice `yaml:"julia,omitempty"` // matrix expand key 115 116 // Matlab Language 117 Matlab Stringorslice `yaml:"matlab,omitempty"` // matrix expand key 118 119 // Nix Language 120 Nix Stringorslice `yaml:"nix,omitempty"` // matrix expand key 121 122 // ObjectiveC 123 XcodeScheme Stringorslice `yaml:"xcode_scheme,omitempty"` // matrix expand key 124 XcodeSDK Stringorslice `yaml:"xcode_sdk,omitempty"` // matrix expand key 125 XcodeDestination string `yaml:"xcode_destination,omitempty"` 126 XcodeProject string `yaml:"xcode_project,omitempty"` 127 XcodeToolArgs string `yaml:"xctool_args,omitempty"` 128 XcodePodfile string `yaml:"xctool_podfile,omitempty"` 129 130 // Php Language 131 PHP Stringorslice `yaml:"php,omitempty"` // matrix expand key 132 PHPComposerArgs string `yaml:"composer_args,omitempty"` 133 134 // Perl Language 135 Perl Stringorslice `yaml:"perl,omitempty"` // matrix expand key 136 Perl6 Stringorslice `yaml:"perl6,omitempty"` // matrix expand key 137 138 // Python Langauge 139 Python Stringorslice `yaml:"python,omitempty"` // matrix expand key 140 PythonVirtualenv map[string]interface{} `yaml:"virtualenv,omitempty"` 141 PythonVirtualenvAlias map[string]interface{} `yaml:"virtual_env,omitempty"` 142 143 // R Langauge 144 // https://config.travis-ci.com/ref/language/r 145 R Stringorslice `yaml:"r,omitempty"` // matrix expand key 146 RPackage Stringorslice `yaml:"r_packages,omitempty"` 147 RBinaryPackages Stringorslice `yaml:"r_binary_packages,omitempty"` 148 RGithubPackage Stringorslice `yaml:"r_github_packages,omitempty"` 149 150 // Ruby Language 151 Ruby Stringorslice `yaml:"ruby,omitempty"` // matrix expand key 152 RubyRVM Stringorslice `yaml:"rvm,omitempty"` // alias for ruby 153 RubyRBenv Stringorslice `yaml:"rbenv,omitempty"` // alias for ruby 154 RubyGemfile Stringorslice `yaml:"gemfile,omitempty"` 155 RubyGemfiles Stringorslice `yaml:"gemfiles,omitempty"` // alias for gemfile 156 RubyBundlerArgs string `yaml:"bundler_args,omitempty"` 157 158 // Rust Langauge 159 Rust Stringorslice `yaml:"rust,omitempty"` // matrix expand key 160 161 // Scala Langauge 162 Scala Stringorslice `yaml:"scala,omitempty"` // matrix expand key 163 ScalaSbtArgs string `yaml:"sbt_args,omitempty"` 164 165 // Smalltalk Language 166 Smalltalk Stringorslice `yaml:"smalltalk,omitempty"` // matrix expand key 167 SmalltalkConfig Stringorslice `yaml:"smalltalk_config,omitempty"` // matrix expand key 168 SmalltalkVM Stringorslice `yaml:"smalltalk_vm,omitempty"` // matrix expand key 169 } 170 )