OLD | NEW |
1 // Copyright 2015 The Swarming Authors. All rights reserved. | 1 // Copyright 2015 The Swarming Authors. All rights reserved. |
2 // Use of this source code is governed by the Apache v2.0 license that can be | 2 // Use of this source code is governed by the Apache v2.0 license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Schemas for project configs. | 5 // Schemas for project configs. |
6 | 6 |
7 syntax = "proto2"; | 7 syntax = "proto2"; |
8 | 8 |
9 package buildbucket; | 9 package buildbucket; |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... |
34 // Repository URL of the recipe package. | 34 // Repository URL of the recipe package. |
35 optional string repository = 1; | 35 optional string repository = 1; |
36 // Name of the recipe to run. | 36 // Name of the recipe to run. |
37 optional string name = 2; | 37 optional string name = 2; |
38 // colon-separated build properties to set. | 38 // colon-separated build properties to set. |
39 // A property can be overriden by "properties" build parameter. | 39 // A property can be overriden by "properties" build parameter. |
40 // | 40 // |
41 // Use this field for string properties and use properties_j for other | 41 // Use this field for string properties and use properties_j for other |
42 // types. | 42 // types. |
43 repeated string properties = 3; | 43 repeated string properties = 3; |
44 // Same as properties, but the value must valid JSON. For example | 44 // Same as properties, but the value must valid JSON or empty. For example |
45 // properties_j: "a:1" | 45 // properties_j: "a:1" |
46 // means property a is a number 1, not string "1". | 46 // means property a is a number 1, not string "1". |
47 // | 47 // |
| 48 // If empty, it means no property must be defined. In particular, it removes |
| 49 // a default value for the property, if any. |
| 50 // |
48 // Fields properties and properties_j can be used together, but cannot both | 51 // Fields properties and properties_j can be used together, but cannot both |
49 // specify values for same property. | 52 // specify values for same property. |
50 repeated string properties_j = 4; | 53 repeated string properties_j = 4; |
51 } | 54 } |
52 | 55 |
53 message Builder { | 56 message Builder { |
54 // Name of the builder. Will be propagated to "builder" build tag and | 57 // Name of the builder. Will be propagated to "builder" build tag and |
55 // "buildername" recipe property. | 58 // "buildername" recipe property. |
56 optional string name = 1; | 59 optional string name = 1; |
57 // Builder category. Will be used for visual grouping, for example in Code R
eview. | 60 // Builder category. Will be used for visual grouping, for example in Code R
eview. |
58 optional string category = 6; | 61 optional string category = 6; |
59 // Will be become to swarming task tags. | 62 // Will be become to swarming task tags. |
60 // Each tag will end up in "swarming_tag" buildbucket tag, for example | 63 // Each tag will end up in "swarming_tag" buildbucket tag, for example |
61 // "swarming_tag:builder:release" | 64 // "swarming_tag:builder:release" |
62 repeated string swarming_tags = 2; | 65 repeated string swarming_tags = 2; |
63 // Colon-delimited key-value pair of task dimensions. | 66 // Colon-delimited key-value pair of task dimensions. |
64 // | 67 // |
65 // If value is not specified ("<key>:"), then it excludes a value for the | 68 // If value is not specified ("<key>:"), then it excludes a default value. |
66 // same key specified in common_dimensions. | |
67 repeated string dimensions = 3; | 69 repeated string dimensions = 3; |
68 // Specifies that a recipe to run. | 70 // Specifies that a recipe to run. |
69 optional Recipe recipe = 4; | 71 optional Recipe recipe = 4; |
70 // Swarming task priority. | 72 // Swarming task priority. |
71 optional uint32 priority = 5; | 73 optional uint32 priority = 5; |
72 // Maximum build execution time. Not to be confused with pending time. | 74 // Maximum build execution time. Not to be confused with pending time. |
73 // If not set, defaults to bucket's common_execution_timeout_secs. | |
74 optional uint32 execution_timeout_secs = 7; | 75 optional uint32 execution_timeout_secs = 7; |
75 } | 76 } |
76 | 77 |
77 // Hostname of the swarming instance, e.g. "chromium-swarm.appspot.com". | 78 // Hostname of the swarming instance, e.g. "chromium-swarm.appspot.com". |
78 optional string hostname = 1; | 79 optional string hostname = 1; |
79 // Used to generate a URL for Build, may contain parameters | 80 // Used to generate a URL for Build, may contain parameters |
80 // {swarming_hostname}, {task_id}, {bucket} and {builder}. Defaults to: | 81 // {swarming_hostname}, {task_id}, {bucket} and {builder}. Defaults to: |
81 // https://{swarming_hostname}/user/task/{task_id} | 82 // https://{swarming_hostname}/user/task/{task_id} |
82 optional string url_format = 2; | 83 optional string url_format = 2; |
83 | 84 |
| 85 // Defines default values for builders. |
| 86 optional Builder builder_defaults = 9; |
| 87 |
| 88 // DEPRECATED: use builder_defaults. |
84 // Will be put to all swarming tasks. | 89 // Will be put to all swarming tasks. |
85 repeated string common_swarming_tags = 3; | 90 repeated string common_swarming_tags = 3; |
86 | 91 |
| 92 // DEPRECATED: use builder_defaults. |
87 // Colon-delimited key-value pair of common task dimensions. | 93 // Colon-delimited key-value pair of common task dimensions. |
88 // | 94 // |
89 // If value is not specified ("<key>:"), then it excludes a value for the | 95 // If value is not specified ("<key>:"), then it excludes a value for the |
90 // same key specified in swarming task template. | 96 // same key specified in swarming task template. |
91 repeated string common_dimensions = 4; | 97 repeated string common_dimensions = 4; |
92 | 98 |
93 // Configuration for each builder. | 99 // Configuration for each builder. |
94 // Swarming tasks are created only for builds for builders that are not | 100 // Swarming tasks are created only for builds for builders that are not |
95 // explicitly specified. | 101 // explicitly specified. |
96 repeated Builder builders = 5; | 102 repeated Builder builders = 5; |
97 | 103 |
| 104 // DEPRECATED: use builder_defaults. |
98 // Defines a default recipe for all builders in this bucket. | 105 // Defines a default recipe for all builders in this bucket. |
99 // A builder may override it or parts of it with something else. | 106 // A builder may override it or parts of it with something else. |
100 optional Recipe common_recipe = 6; | 107 optional Recipe common_recipe = 6; |
101 | 108 |
| 109 // DEPRECATED: use builder_defaults. |
102 // Maximum build execution time. Not to be confused with pending time. | 110 // Maximum build execution time. Not to be confused with pending time. |
103 // If not set, defaults to server defaults. | 111 // If not set, defaults to server defaults. |
104 optional uint32 common_execution_timeout_secs = 7; | 112 optional uint32 common_execution_timeout_secs = 7; |
105 | 113 |
106 // Percentage of builds that should use a canary swarming task template. | 114 // Percentage of builds that should use a canary swarming task template. |
107 // A value from 0 to 100. | 115 // A value from 0 to 100. |
108 optional uint32 task_template_canary_percentage = 8; | 116 optional uint32 task_template_canary_percentage = 8; |
109 } | 117 } |
110 | 118 |
111 // Defines one bucket in buildbucket.cfg | 119 // Defines one bucket in buildbucket.cfg |
112 message Bucket { | 120 message Bucket { |
113 // Name of the bucket. Names are unique within one instance of buildbucket. | 121 // Name of the bucket. Names are unique within one instance of buildbucket. |
114 // If another project already uses this name, a config will be rejected. | 122 // If another project already uses this name, a config will be rejected. |
115 // Name reservation is first-come first-serve. | 123 // Name reservation is first-come first-serve. |
116 optional string name = 1; | 124 optional string name = 1; |
117 // List of access control rules for the bucket. | 125 // List of access control rules for the bucket. |
118 repeated Acl acls = 2; | 126 repeated Acl acls = 2; |
119 // Buildbucket-swarming integration. | 127 // Buildbucket-swarming integration. |
120 optional Swarming swarming = 3; | 128 optional Swarming swarming = 3; |
121 } | 129 } |
122 | 130 |
123 // Schema of buildbucket.cfg file, a project config. | 131 // Schema of buildbucket.cfg file, a project config. |
124 message BuildbucketCfg { | 132 message BuildbucketCfg { |
125 // All buckets defined for this project. | 133 // All buckets defined for this project. |
126 repeated Bucket buckets = 1; | 134 repeated Bucket buckets = 1; |
127 } | 135 } |
OLD | NEW |