1use crate::types::{EnvValue, Vendor, VendorConfig};
7
8pub(crate) fn create() -> Vec<VendorConfig> {
9 vec![
10 VendorConfig {
11 name: "Agola".to_string(),
12 vendor: Vendor::Agola,
13 ci_env: EnvValue::Exists("AGOLA_REPOSITORY_URL".to_string()),
14 pr_env: None,
15 branch_name_env: Some("AGOLA_GIT_BRANCH".to_string()),
16 },
17 VendorConfig {
18 name: "AppCenter".to_string(),
19 vendor: Vendor::AppCenter,
20 ci_env: EnvValue::Exists("APPCENTER_BUILD_ID".to_string()),
21 pr_env: None,
22 branch_name_env: Some("APPCENTER_BRANCH".to_string()),
23 },
24 VendorConfig {
25 name: "AppCircle".to_string(),
26 vendor: Vendor::AppCircle,
27 ci_env: EnvValue::Exists("AC_APPCIRCLE".to_string()),
28 pr_env: None,
29 branch_name_env: Some("AC_GIT_BRANCH".to_string()),
30 },
31 VendorConfig {
32 name: "AppVeyor".to_string(),
33 vendor: Vendor::AppVeyor,
34 ci_env: EnvValue::Exists("APPVEYOR".to_string()),
35 pr_env: Some(EnvValue::Exists("APPVEYOR_PULL_REQUEST_NUMBER".to_string())),
36 branch_name_env: Some("APPVEYOR_REPO_BRANCH".to_string()),
37 },
38 VendorConfig {
39 name: "AWS CodeBuild".to_string(),
40 vendor: Vendor::AWSCodeBuild,
41 ci_env: EnvValue::Exists("CODEBUILD_BUILD_ARN".to_string()),
42 pr_env: None,
43 branch_name_env: None,
44 },
45 VendorConfig {
46 name: "Azure Pipelines".to_string(),
47 vendor: Vendor::AzurePipelines,
48 ci_env: EnvValue::Exists("TF_BUILD".to_string()),
49 pr_env: Some(EnvValue::Value(
50 "BUILD_REASON".to_string(),
51 "PullRequest".to_string(),
52 )),
53 branch_name_env: Some("BUILD_SOURCEBRANCHNAME".to_string()),
54 },
55 VendorConfig {
56 name: "Bamboo".to_string(),
57 vendor: Vendor::Bamboo,
58 ci_env: EnvValue::Exists("bamboo_planKey".to_string()),
59 pr_env: None,
60 branch_name_env: None,
61 },
62 VendorConfig {
63 name: "Bitbucket Pipelines".to_string(),
64 vendor: Vendor::BitbucketPipelines,
65 ci_env: EnvValue::Exists("BITBUCKET_COMMIT".to_string()),
66 pr_env: Some(EnvValue::Exists("BITBUCKET_PR_ID".to_string())),
67 branch_name_env: Some("BITBUCKET_BRANCH".to_string()),
68 },
69 VendorConfig {
70 name: "Bitrise".to_string(),
71 vendor: Vendor::Bitrise,
72 ci_env: EnvValue::Exists("BITRISE_IO".to_string()),
73 pr_env: Some(EnvValue::Exists("BITRISE_PULL_REQUEST".to_string())),
74 branch_name_env: Some("BITRISE_GIT_BRANCH".to_string()),
75 },
76 VendorConfig {
77 name: "Buddy".to_string(),
78 vendor: Vendor::Buddy,
79 ci_env: EnvValue::Exists("BUDDY_WORKSPACE_ID".to_string()),
80 pr_env: Some(EnvValue::Exists(
81 "BUDDY_EXECUTION_PULL_REQUEST_ID".to_string(),
82 )),
83 branch_name_env: Some("BUDDY_EXECUTION_BRANCH".to_string()),
84 },
85 VendorConfig {
86 name: "Buildkite".to_string(),
87 vendor: Vendor::Buildkite,
88 ci_env: EnvValue::Exists("BUILDKITE".to_string()),
89 pr_env: Some(EnvValue::NotEqual(
90 "BUILDKITE_PULL_REQUEST".to_string(),
91 "false".to_string(),
92 )),
93 branch_name_env: None,
94 },
95 VendorConfig {
96 name: "CircleCI".to_string(),
97 vendor: Vendor::CircleCI,
98 ci_env: EnvValue::Exists("CIRCLECI".to_string()),
99 pr_env: Some(EnvValue::Exists("CIRCLE_PULL_REQUEST".to_string())),
100 branch_name_env: Some("CIRCLE_BRANCH".to_string()),
101 },
102 VendorConfig {
103 name: "Cirrus CI".to_string(),
104 vendor: Vendor::CirrusCI,
105 ci_env: EnvValue::Exists("CIRRUS_CI".to_string()),
106 pr_env: Some(EnvValue::Exists("CIRRUS_PR".to_string())),
107 branch_name_env: Some("CIRRUS_BRANCH".to_string()),
108 },
109 VendorConfig {
110 name: "Codefresh".to_string(),
111 vendor: Vendor::Codefresh,
112 ci_env: EnvValue::Exists("CF_BUILD_ID".to_string()),
113 pr_env: Some(EnvValue::Exists("CF_PULL_REQUEST_ID".to_string())),
114 branch_name_env: Some("CF_BRANCH".to_string()),
115 },
116 VendorConfig {
117 name: "Codemagic".to_string(),
118 vendor: Vendor::Codemagic,
119 ci_env: EnvValue::Exists("CM_BUILD_ID".to_string()),
120 pr_env: Some(EnvValue::Value(
121 "CM_PULL_REQUEST".to_string(),
122 "true".to_string(),
123 )),
124 branch_name_env: Some("CM_BRANCH".to_string()),
125 },
126 VendorConfig {
127 name: "Codeship".to_string(),
128 vendor: Vendor::Codeship,
129 ci_env: EnvValue::Value("CI_NAME".to_string(), "codeship".to_string()),
130 pr_env: None,
131 branch_name_env: Some("CI_BRANCH".to_string()),
132 },
133 VendorConfig {
134 name: "Drone".to_string(),
135 vendor: Vendor::Drone,
136 ci_env: EnvValue::Exists("DRONE".to_string()),
137 pr_env: Some(EnvValue::Value(
138 "DRONE_BUILD_EVENT".to_string(),
139 "pull_request".to_string(),
140 )),
141 branch_name_env: None,
142 },
143 VendorConfig {
144 name: "dsari".to_string(),
145 vendor: Vendor::DSARI,
146 ci_env: EnvValue::Exists("DSARI".to_string()),
147 pr_env: None,
148 branch_name_env: None,
149 },
150 VendorConfig {
151 name: "Earthly".to_string(),
152 vendor: Vendor::EARTHLY,
153 ci_env: EnvValue::Exists("EARTHLY_CI".to_string()),
154 pr_env: None,
155 branch_name_env: None,
156 },
157 VendorConfig {
158 name: "Flow CI".to_string(),
159 vendor: Vendor::FlowCI,
160 ci_env: EnvValue::Exists("FLOWCI_JOB_BUILD_NUM".to_string()),
161 pr_env: None,
162 branch_name_env: Some("FLOWCI_GIT_BRANCH".to_string()),
163 },
164 VendorConfig {
165 name: "Gitea Actions".to_string(),
166 vendor: Vendor::GiteaActions,
167 ci_env: EnvValue::Exists("GITEA_ACTIONS".to_string()),
168 pr_env: None,
169 branch_name_env: None,
170 },
171 VendorConfig {
172 name: "GitHub Actions".to_string(),
173 vendor: Vendor::GitHubActions,
174 ci_env: EnvValue::Exists("GITHUB_ACTIONS".to_string()),
175 pr_env: Some(EnvValue::Value(
176 "GITHUB_EVENT_NAME".to_string(),
177 "pull_request".to_string(),
178 )),
179 branch_name_env: None,
180 },
181 VendorConfig {
182 name: "GitLab CI".to_string(),
183 vendor: Vendor::GitLabCI,
184 ci_env: EnvValue::Exists("GITLAB_CI".to_string()),
185 pr_env: Some(EnvValue::Exists("CI_MERGE_REQUEST_ID".to_string())),
186 branch_name_env: Some("CI_COMMIT_REF_NAME".to_string()),
187 },
188 VendorConfig {
189 name: "Gerrit".to_string(),
190 vendor: Vendor::Gerrit,
191 ci_env: EnvValue::Exists("GERRIT_PROJECT".to_string()),
192 pr_env: None,
193 branch_name_env: None,
194 },
195 VendorConfig {
196 name: "GoCD".to_string(),
197 vendor: Vendor::GoCD,
198 ci_env: EnvValue::Exists("GO_PIPELINE_LABEL".to_string()),
199 pr_env: None,
200 branch_name_env: None,
201 },
202 VendorConfig {
203 name: "Google Cloud Build".to_string(),
204 vendor: Vendor::GoogleCloudBuild,
205 ci_env: EnvValue::Exists("BUILDER_OUTPUT".to_string()),
206 pr_env: None,
207 branch_name_env: None,
208 },
209 VendorConfig {
210 name: "Harness CI".to_string(),
211 vendor: Vendor::HarnessCI,
212 ci_env: EnvValue::Exists("HARNESS_BUILD_ID".to_string()),
213 pr_env: None,
214 branch_name_env: None,
215 },
216 VendorConfig {
217 name: "Heroku".to_string(),
218 vendor: Vendor::Heroku,
219 ci_env: EnvValue::Contains("NODE".to_string(), "heroku".to_string()),
220 pr_env: None,
221 branch_name_env: Some("HEROKU_TEST_RUN_BRANCH".to_string()),
222 },
223 VendorConfig {
224 name: "Hudson".to_string(),
225 vendor: Vendor::Hudson,
226 ci_env: EnvValue::Exists("HUDSON_URL".to_string()),
227 pr_env: None,
228 branch_name_env: Some("BRANCH_NAME".to_string()),
229 },
230 VendorConfig {
231 name: "Jenkins".to_string(),
232 vendor: Vendor::Jenkins,
233 ci_env: EnvValue::AllExists(vec!["JENKINS_URL".to_string(), "BUILD_ID".to_string()]),
234 pr_env: Some(EnvValue::AnyExists(vec![
235 "ghprbPullId".to_string(),
236 "CHANGE_ID".to_string(),
237 ])),
238 branch_name_env: Some("BRANCH_NAME".to_string()),
239 },
240 VendorConfig {
241 name: "JenkinsX".to_string(),
242 vendor: Vendor::JenkinsX,
243 ci_env: EnvValue::AllExists(vec![
244 "JX_CHART_REPOSITORY".to_string(),
245 "BUILD_ID".to_string(),
246 ]),
247 pr_env: Some(EnvValue::Exists("PULL_NUMBER".to_string())),
248 branch_name_env: Some("BRANCH_NAME".to_string()),
249 },
250 VendorConfig {
251 name: "Layer CI".to_string(),
252 vendor: Vendor::LayerCI,
253 ci_env: EnvValue::Exists("LAYERCI".to_string()),
254 pr_env: Some(EnvValue::Exists("LAYERCI_PULL_REQUEST".to_string())),
255 branch_name_env: Some("LAYERCI_BRANCH".to_string()),
256 },
257 VendorConfig {
258 name: "Magnum CI".to_string(),
259 vendor: Vendor::MagnumCI,
260 ci_env: EnvValue::Exists("MAGNUM".to_string()),
261 pr_env: None,
262 branch_name_env: None,
263 },
264 VendorConfig {
265 name: "Netlify CI".to_string(),
266 vendor: Vendor::NetlifyCI,
267 ci_env: EnvValue::Value("NETLIFY".to_string(), "true".to_string()),
268 pr_env: Some(EnvValue::NotEqual(
269 "PULL_REQUEST".to_string(),
270 "false".to_string(),
271 )),
272 branch_name_env: Some("BRANCH".to_string()),
273 },
274 VendorConfig {
275 name: "Nevercode".to_string(),
276 vendor: Vendor::Nevercode,
277 ci_env: EnvValue::Exists("NEVERCODE".to_string()),
278 pr_env: Some(EnvValue::NotEqual(
279 "NEVERCODE_PULL_REQUEST".to_string(),
280 "false".to_string(),
281 )),
282 branch_name_env: Some("NEVERCODE_BRANCH".to_string()),
283 },
284 VendorConfig {
285 name: "Prow".to_string(),
286 vendor: Vendor::Prow,
287 ci_env: EnvValue::Exists("PROW_JOB_ID".to_string()),
288 pr_env: Some(EnvValue::NotEmpty("PULL_NUMBER".to_string())),
289 branch_name_env: Some("PULL_BASE_REF".to_string()),
290 },
291 VendorConfig {
292 name: "Render".to_string(),
293 vendor: Vendor::Render,
294 ci_env: EnvValue::Exists("RENDER".to_string()),
295 pr_env: Some(EnvValue::Value(
296 "IS_PULL_REQUEST".to_string(),
297 "true".to_string(),
298 )),
299 branch_name_env: None,
300 },
301 VendorConfig {
302 name: "Sail CI".to_string(),
303 vendor: Vendor::SailCI,
304 ci_env: EnvValue::Exists("SAILCI".to_string()),
305 pr_env: Some(EnvValue::Exists("SAIL_PULL_REQUEST_NUMBER".to_string())),
306 branch_name_env: None,
307 },
308 VendorConfig {
309 name: "Screwdriver".to_string(),
310 vendor: Vendor::Screwdriver,
311 ci_env: EnvValue::Exists("SCREWDRIVER".to_string()),
312 pr_env: Some(EnvValue::NotEmpty("SD_PULL_REQUEST".to_string())),
313 branch_name_env: Some("GIT_BRANCH".to_string()),
314 },
315 VendorConfig {
316 name: "Semaphore".to_string(),
317 vendor: Vendor::Semaphore,
318 ci_env: EnvValue::Exists("SEMAPHORE".to_string()),
319 pr_env: Some(EnvValue::Exists("PULL_REQUEST_NUMBER".to_string())),
320 branch_name_env: Some("SEMAPHORE_GIT_BRANCH".to_string()),
321 },
322 VendorConfig {
323 name: "SourceHut".to_string(),
324 vendor: Vendor::SourceHut,
325 ci_env: EnvValue::Contains("JOB_URL".to_string(), "builds.sr.ht".to_string()),
326 pr_env: None,
327 branch_name_env: None,
328 },
329 VendorConfig {
330 name: "Strider CD".to_string(),
331 vendor: Vendor::StriderCD,
332 ci_env: EnvValue::Exists("STRIDER".to_string()),
333 pr_env: None,
334 branch_name_env: None,
335 },
336 VendorConfig {
337 name: "TaskCluster".to_string(),
338 vendor: Vendor::TaskCluster,
339 ci_env: EnvValue::AllExists(vec!["TASK_ID".to_string(), "RUN_ID".to_string()]),
340 pr_env: None,
341 branch_name_env: None,
342 },
343 VendorConfig {
344 name: "TeamCity".to_string(),
345 vendor: Vendor::TeamCity,
346 ci_env: EnvValue::Exists("TEAMCITY_VERSION".to_string()),
347 pr_env: None,
348 branch_name_env: None,
349 },
350 VendorConfig {
351 name: "Travis CI".to_string(),
352 vendor: Vendor::TravisCI,
353 ci_env: EnvValue::Exists("TRAVIS".to_string()),
354 pr_env: Some(EnvValue::NotEqual(
355 "TRAVIS_PULL_REQUEST".to_string(),
356 "false".to_string(),
357 )),
358 branch_name_env: Some("TRAVIS_BRANCH".to_string()),
359 },
360 VendorConfig {
361 name: "Vela".to_string(),
362 vendor: Vendor::Vela,
363 ci_env: EnvValue::Exists("VELA_BUILD_NUMBER".to_string()),
364 pr_env: Some(EnvValue::Exists("VELA_PULL_REQUEST".to_string())),
365 branch_name_env: Some("VELA_BUILD_BRANCH".to_string()),
366 },
367 VendorConfig {
368 name: "Vercel".to_string(),
369 vendor: Vendor::Vercel,
370 ci_env: EnvValue::AnyExists(vec!["NOW_BUILDER".to_string(), "VERCEL".to_string()]),
371 pr_env: Some(EnvValue::Exists("VERCEL_GIT_PULL_REQUEST_ID".to_string())),
372 branch_name_env: None,
373 },
374 VendorConfig {
375 name: "Woodpecker CI".to_string(),
376 vendor: Vendor::WoodpeckerCI,
377 ci_env: EnvValue::Value("CI".to_string(), "woodpecker".to_string()),
378 pr_env: Some(EnvValue::NotEmpty("CI_COMMIT_PULL_REQUEST".to_string())),
379 branch_name_env: Some("CI_COMMIT_BRANCH".to_string()),
380 },
381 VendorConfig {
382 name: "Xcode Cloud".to_string(),
383 vendor: Vendor::XcodeCloud,
384 ci_env: EnvValue::Exists("CI_XCODE_PROJECT".to_string()),
385 pr_env: Some(EnvValue::NotEmpty("CI_PULL_REQUEST_NUMBER".to_string())),
386 branch_name_env: Some("CI_BRANCH".to_string()),
387 },
388 VendorConfig {
389 name: "Xcode Server".to_string(),
390 vendor: Vendor::XcodeServer,
391 ci_env: EnvValue::Exists("XCS".to_string()),
392 pr_env: None,
393 branch_name_env: None,
394 },
395 VendorConfig {
396 name: "Unknown".to_string(),
397 vendor: Vendor::Unknown,
398 ci_env: EnvValue::AnyExists(vec![
399 "CI".to_string(),
400 "CONTINUOUS_INTEGRATION".to_string(),
401 "BUILD_NUMBER".to_string(),
402 "RUN_ID".to_string(),
403 ]),
404 pr_env: None,
405 branch_name_env: None,
406 },
407 ]
408}