[backend] define armvXl architecture but keep armvXel and hl for compatibility
[opensuse:build-service.git] / docs / api / api / obs.rng
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   Default objects for OBS
4 -->
5
6 <grammar ns="http://buildservice.org/api" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
7
8   <!-- this list needs to be kept in sync with list in bs_worker -->
9   <define ns="" name="build-arch">
10     <choice>
11       <value>noarch</value>
12       <value>athlon</value>
13       <value>armv4l</value>
14       <value>armv5l</value>
15       <value>armv6l</value>
16       <value>armv7l</value>
17       <value>armv7l</value>
18       <value>armv5el</value> <!-- not existing officially -->
19       <value>armv6el</value>
20       <value>armv7el</value>
21       <value>armv7hl</value>
22       <value>armv8el</value>
23       <value>hppa</value>
24       <value>i386</value>
25       <value>i486</value>
26       <value>i586</value>
27       <value>i686</value>
28       <value>ia64</value>
29       <value>mips</value>
30       <value>mipsel</value>
31       <value>mips32</value>
32       <value>mips64</value>
33       <value>mips64el</value>
34       <value>ppc</value>
35       <value>ppc64</value>
36       <value>s390</value>
37       <value>s390x</value>
38       <value>sh4</value>
39       <value>sparc</value>
40       <value>sparc64</value>
41       <value>sparc64v</value>
42       <value>sparcv8</value>
43       <value>sparcv9</value>
44       <value>sparcv9v</value>
45       <value>x86_64</value>
46       <value>local</value>
47     </choice>
48   </define>
49
50   <define ns="" name="rebuild-modes">
51     <choice>
52       <value>transitive</value> <!-- DEFAULT: build on source change and all depending packages including indirect dependencies -->
53       <value>direct</value>     <!-- build on source change and direct depending packages -->
54       <value>local</value>      <!-- build on source change only -->
55     </choice>
56   </define>
57
58   <define ns="" name="block-modes">
59     <choice>
60       <value>all</value>       <!-- DEFAULT: block until all packages we depend on are built -->
61       <value>local</value>     <!-- like all, but ignore packages from other repositories -->
62       <value>never</value>     <!-- immediately start building the packages -->
63     </choice>
64   </define>
65
66   <define ns="" name="service-modes">
67     <choice>
68                                    <!-- DEFAULT: the attribute is not used, service running on server and locally on build time -->
69       <value>trylocal</value>      <!-- try on local clients, but run also on server side -->
70       <value>localonly</value>     <!-- never run on server side, but on the clients (not enforced) -->
71       <value>disabled</value>      <!-- never run, except user explicit starts it locally -->
72     </choice>
73   </define>
74
75   <define ns="" name="linkedbuild-modes">
76     <choice>
77       <value>off</value>       <!-- DEFAULT: do not build packages from project links -->
78       <value>localdep</value>  <!-- only build project linked packages if they depend on a local package -->
79       <value>all</value>       <!-- treat packages from project links like local packages -->
80     </choice>
81   </define>
82
83   <define ns="" name="release-triggers">
84     <choice>
85       <value>manual</value>        <!-- DEFAULT: only on manual commands the release gets started -->
86       <value>finished</value>      <!-- Release when the repository has finished building -->
87       <value>allsucceeded</value>  <!-- Release when the repository has finished building and all jobs were successfull -->
88       <value>maintenance</value>   <!-- Release just once on maintenance release event. This attribute get removed at the same time -->
89     </choice>
90   </define>
91
92   <define ns="" name="local-role">
93     <choice>
94       <value>maintainer</value>
95       <value>bugowner</value>
96       <value>reviewer</value>
97       <value>downloader</value>
98       <value>reader</value>
99     </choice>
100   </define>
101
102   <define ns="" name="global-role">
103     <choice>
104       <value>Admin</value>
105       <value>User</value>
106     </choice>
107   </define>
108
109   <define ns="" name="person-element">
110     <element name="person">
111       <attribute name="userid">
112         <data type="string" />
113       </attribute>
114       <attribute name="role">
115         <ref name="local-role" />
116       </attribute>
117       <empty/>
118     </element>
119   </define>
120
121   <define ns="" name="group-element">
122     <element name="group">
123       <attribute name="groupid">
124         <data type="string" />
125       </attribute>
126       <attribute name="role">
127         <ref name="local-role" />
128       </attribute>
129       <empty/>
130     </element>
131   </define>
132
133   <define ns="" name="flag-switch">
134     <optional>
135       <attribute name="repository">
136         <data type="string" />
137       </attribute>
138     </optional>
139     <optional>
140       <attribute name="arch">
141         <ref name="build-arch" />
142       </attribute>
143     </optional>
144   </define>
145
146   <define ns="" name="flag-element">
147     <zeroOrMore>
148       <optional>
149         <element name="enable">
150           <ref name="flag-switch"/>
151         </element>
152       </optional>
153       <optional>
154         <element name="disable">
155           <ref name="flag-switch"/>
156         </element>
157       </optional>
158     </zeroOrMore>
159     <empty/>
160   </define>
161
162   <define ns="" name="simple-flag-element">
163     <optional>
164       <element name="enable">
165         <empty/>
166       </element>
167     </optional>
168     <optional>
169       <element name="disable">
170         <empty/>
171       </element>
172     </optional>
173     <empty/>
174   </define>
175
176   <define ns="" name="repository-element">
177     <element name="repository">
178       <attribute name="name">
179         <data type="string" />
180       </attribute>
181       <optional>
182         <attribute name="rebuild">
183           <ref name="rebuild-modes" />
184         </attribute>
185       </optional>
186       <optional>
187         <attribute name="block">
188           <ref name="block-modes" />
189         </attribute>
190       </optional>
191       <optional>
192         <attribute name="linkedbuild">
193           <ref name="linkedbuild-modes" />
194         </attribute>
195       </optional>
196       <interleave>
197         <optional> <!-- limited to one currently. Could be extended later -->
198             <element name="releasetarget">
199               <attribute name="project">
200                 <data type="string" />
201               </attribute>
202               <attribute name="repository">
203                 <data type="string" />
204               </attribute>
205               <optional>
206                 <attribute name="trigger">
207                   <ref name="release-triggers" />
208                 </attribute>
209               </optional>
210             </element>
211         </optional>
212         <zeroOrMore>
213             <element name="path">
214               <attribute name="repository">
215                 <data type="string" />
216               </attribute>
217               <attribute name="project">
218                 <data type="string" />
219               </attribute>
220             </element>
221         </zeroOrMore>
222         <zeroOrMore>
223           <element name="arch">
224             <ref name="build-arch" />
225           </element>
226         </zeroOrMore>
227       </interleave>
228       <empty/>
229     </element>
230   </define>
231
232 </grammar>