Change the locks to allow builds for different branches to run concurrently
[wxWidgets.git] / build / buildbot / config / include / xp_vc.xml
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!--
4 Name: include/xp_vc.xml
5 Purpose: Declarations for the xp_vc slave
6 Author: Michael Wetherell
7 RCS-ID: $Id$
8 Copyright: (c) 2008 Michael Wetherell
9 Licence: wxWidgets licence
10 -->
11
12 <bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
13 xmlns:xi="http://www.w3.org/2001/XInclude">
14
15 <xi:include href="defs.xml"/>
16
17 <!--
18 build - Override <build> to add a slave lock. This has the effect of
19 serialising builds for the same branch on this machine.
20 -->
21 <xsl:template name="build">
22 <xsl:param name="content"/>
23 <xsl:variable name="checkout">
24 <xsl:apply-templates select="get:step('checkout')"/>
25 </xsl:variable>
26 <build>
27 <lock>
28 <xsl:value-of select="exsl:node-set($checkout)/svn/defaultBranch"/>
29 </lock>
30 <xsl:copy-of select="$content"/>
31 </build>
32 </xsl:template>
33
34 <!--
35 checkout - checks out to a shared directory
36
37 Checks out to a directory '../$branch' shared between builds. Then exports
38 it to a clean 'build' directory for the job to build in. This relies on
39 builds for the same branch being serialised with a lock so that one build
40 doesn't update the shared source while another is exporting them.
41
42 Usage typically just:
43 <checkout/>
44 for the trunk, or:
45 <checkout branch="branches/WX_2_8_BRANCH"/>
46 to checkout a branch.
47 -->
48 <xsl:template name="checkout">
49 <xsl:param name="content"/>
50 <xsl:param name="branch" select="'trunk'"/>
51 <xsl:variable name="nodes" select="exsl:node-set($content)"/>
52 <svn>
53 <xsl:if test="not($nodes/svnurl)">
54 <xsl:if test="not($nodes/baseURL)">
55 <baseURL><SVN_URL/></baseURL>
56 </xsl:if>
57 <xsl:if test="not($nodes/defaultBranch)">
58 <defaultBranch><xsl:value-of select="$branch"/></defaultBranch>
59 </xsl:if>
60 </xsl:if>
61 <xsl:if test="not($nodes/workdir)">
62 <workdir>../<xsl:value-of select="$branch"/></workdir>
63 </xsl:if>
64 <xsl:copy-of select="$content"/>
65 </svn>
66 <shellcommand>
67 <description>creating build directory</description>
68 <descriptionDone>create build directory</descriptionDone>
69 <workdir>.</workdir>
70 <command>
71 <normalize-space>
72 (if exist build rmdir /s/q build) &amp;&amp;
73 svn export --native-eol CRLF
74 ..\<xsl:value-of select="$branch"/> build
75 </normalize-space>
76 </command>
77 </shellcommand>
78 </xsl:template>
79
80 </bot>