1
+ /*
2
+ * Copyright (c) HashiCorp, Inc.
3
+ * SPDX-License-Identifier: MPL-2.0
4
+ */
5
+
1
6
// this file is auto-generated with mmv1, any changes made here will be overwritten
2
7
3
8
import jetbrains.buildServer.configs.kotlin.BuildType
@@ -6,28 +11,34 @@ import jetbrains.buildServer.configs.kotlin.AbsoluteId
6
11
7
12
const val providerName = " google"
8
13
9
- fun Google (environment : String , manualVcsRoot : AbsoluteId , configuration : ClientConfiguration ) : Project {
14
+ // Google returns an instance of Project,
15
+ // which has multiple build configurations defined within it.
16
+ // See https://teamcity.jetbrains.com/app/dsl-documentation/root/project/index.html
17
+ fun Google (environment : String , manualVcsRoot : AbsoluteId , branchRef : String , configuration : ClientConfiguration ) : Project {
10
18
return Project {
11
19
12
- var buildConfigs = buildConfigurationsForPackages(packages, providerName, " google" , environment, manualVcsRoot, configuration)
20
+ // Create build configs for each package defined in packages.kt
21
+ var buildConfigs = buildConfigurationsForPackages(packages, providerName, " google" , environment, manualVcsRoot, branchRef, configuration)
13
22
buildConfigs.forEach { buildConfiguration ->
14
23
buildType(buildConfiguration)
15
24
}
16
25
}
17
26
}
18
27
19
- fun buildConfigurationsForPackages (packages : Map <String , String >, providerName : String , path : String , environment : String , manualVcsRoot : AbsoluteId , config : ClientConfiguration ): List <BuildType > {
28
+ fun buildConfigurationsForPackages (packages : Map <String , String >, providerName : String , path : String , environment : String , manualVcsRoot : AbsoluteId , branchRef : String , config : ClientConfiguration ): List <BuildType > {
20
29
var list = ArrayList <BuildType >()
21
30
22
31
packages.forEach { (packageName, displayName) ->
23
32
if (packageName == " services" ) {
24
- var serviceList = buildConfigurationsForPackages(services, providerName, path+ " /" + packageName, environment, manualVcsRoot, config)
33
+ // `services` is a folder containing packages, not a package itself; call buildConfigurationsForPackages to iterate through directories found within `services`
34
+ var serviceList = buildConfigurationsForPackages(services, providerName, path+ " /" + packageName, environment, manualVcsRoot, branchRef, config)
25
35
list.addAll(serviceList)
26
36
} else {
27
- var defaultTestConfig = testConfiguration()
37
+ // other folders assumed to be packages
38
+ var testConfig = testConfiguration(environment)
28
39
29
- var pkg = packageDetails(packageName, displayName, environment)
30
- var buildConfig = pkg.buildConfiguration(providerName, path, manualVcsRoot, true , defaultTestConfig .startHour, defaultTestConfig .parallelism, defaultTestConfig .daysOfWeek, defaultTestConfig .daysOfMonth)
40
+ var pkg = packageDetails(packageName, displayName, environment, branchRef )
41
+ var buildConfig = pkg.buildConfiguration(providerName, path, manualVcsRoot, true , testConfig .startHour, testConfig .parallelism, testConfig .daysOfWeek, testConfig .daysOfMonth)
31
42
32
43
buildConfig.params.ConfigureGoogleSpecificTestParameters (config)
33
44
@@ -38,9 +49,23 @@ fun buildConfigurationsForPackages(packages: Map<String, String>, providerName :
38
49
return list
39
50
}
40
51
41
- class testConfiguration (parallelism : Int = defaultParallelism, startHour : Int = defaultStartHour, daysOfWeek : String = defaultDaysOfWeek, daysOfMonth : String = defaultDaysOfMonth) {
52
+ class testConfiguration (environment : String , parallelism : Int = defaultParallelism, startHour : Int = defaultStartHour, daysOfWeek : String = defaultDaysOfWeek, daysOfMonth : String = defaultDaysOfMonth) {
53
+
54
+ // Default values are present if init doesn't change them
42
55
var parallelism = parallelism
43
56
var startHour = startHour
44
57
var daysOfWeek = daysOfWeek
45
58
var daysOfMonth = daysOfMonth
59
+
60
+ init {
61
+ // If the environment parameter is set to the value of MAJOR_RELEASE_TESTING,
62
+ // change the days of week to the day for v5.0.0 feature branch testing
63
+ if (environment == MAJOR_RELEASE_TESTING ) {
64
+ this .parallelism = parallelism
65
+ this .startHour = startHour
66
+ this .daysOfWeek = " 4" // Thursday for GA
67
+ this .daysOfMonth = daysOfMonth
68
+ }
69
+ }
70
+
46
71
}
0 commit comments