Skip to content

Commit

Permalink
Allow Contrib libs to exclude JDKs and Clojure versions
Browse files Browse the repository at this point in the history
New ci_data.clj options for matrix test builds of contrib libraries:

  :min-clojure  Clojure version string like "1.3.0", the minimum
                version this library supports. Matches strings in the
                :clojure-versions list

  :exclude-jdk  Set of JDK names like "IBM JDK 1.5" to exclude from
                the matrix build. Matches :name strings in the :jdks
                list.
  • Loading branch information
Stuart Sierra committed Feb 16, 2013
1 parent e1c0ab6 commit eb4d025
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 13 deletions.
14 changes: 7 additions & 7 deletions ci_data.clj
Expand Up @@ -55,19 +55,19 @@
[{:name "algo.monads" :owners ["konradhinsen"]} [{:name "algo.monads" :owners ["konradhinsen"]}
{:name "algo.generic" :owners ["konradhinsen"]} {:name "algo.generic" :owners ["konradhinsen"]}
{:name "core.incubator" :owners []} {:name "core.incubator" :owners []}
{:name "core.logic" :owners ["davidnolen"]} {:name "core.logic" :owners ["davidnolen"] :min-clojure "1.3.0"}
{:name "core.match" :owners ["davidnolen"]} {:name "core.match" :owners ["davidnolen"] :min-clojure "1.3.0"}
{:name "core.unify" :owners ["fogus"]} {:name "core.unify" :owners ["fogus"]}
{:name "core.memoize" :owners ["fogus"]} {:name "core.memoize" :owners ["fogus"]}
{:name "core.cache" :owners ["fogus"]} {:name "core.cache" :owners ["fogus"]}
{:name "core.contracts" :owners ["fogus"]} {:name "core.contracts" :owners ["fogus"]}
{:name "data.codec" :owners ["ataggart"]} {:name "data.codec" :owners ["ataggart"] :min-clojure "1.3.0"}
{:name "data.csv" :owners ["jonasenlund"]} {:name "data.csv" :owners ["jonasenlund"]}
{:name "data.finger-tree" :owners ["Chouser"]} {:name "data.finger-tree" :owners ["Chouser"] :min-clojure "1.2.1"}
{:name "data.generators" :owners ["stuart.halloway"]} {:name "data.generators" :owners ["stuart.halloway"]}
{:name "data.json" :owners ["stuartsierra"]} {:name "data.json" :owners ["stuartsierra"] :min-clojure "1.3.0"}
{:name "data.priority-map" :owners ["markengelberg" "seancorfield"]} {:name "data.priority-map" :owners ["markengelberg" "seancorfield"]}
{:name "data.xml" :owners ["ryansenior"] :jdk-version "1.6"} {:name "data.xml" :owners ["ryansenior"] :exclude-jdk #{"Sun JDK 1.5" "IBM JDK 1.5" "IBM JDK 1.6"}}
{:name "data.zip" :owners []} {:name "data.zip" :owners []}
{:name "java.classpath" :owners ["stuartsierra"]} {:name "java.classpath" :owners ["stuartsierra"]}
{:name "java.data" :owners ["cosminstejerean"]} {:name "java.data" :owners ["cosminstejerean"]}
Expand All @@ -79,7 +79,7 @@
{:name "tools.cli" :owners ["garethjones"]} {:name "tools.cli" :owners ["garethjones"]}
{:name "tools.logging" :owners ["ataggart"]} {:name "tools.logging" :owners ["ataggart"]}
{:name "tools.macro" :owners ["konradhinsen"]} {:name "tools.macro" :owners ["konradhinsen"]}
{:name "tools.namespace" :owners ["stuartsierra"]} {:name "tools.namespace" :owners ["stuartsierra"] :min-clojure "1.3.0"}
{:name "tools.nrepl" :owners ["cemerick"]} {:name "tools.nrepl" :owners ["cemerick"]}
{:name "tools.reader" :owners ["nicolamometto"]} {:name "tools.reader" :owners ["nicolamometto"]}
{:name "tools.trace" :owners ["lucprefontaine"]}]} {:name "tools.trace" :owners ["lucprefontaine"]}]}
17 changes: 16 additions & 1 deletion generator/src/main/clojure/clojure/build/ci/generator.clj
Expand Up @@ -75,9 +75,24 @@
{:jdks (jdk-names) {:jdks (jdk-names)
:clojures (active-clojures)}) :clojures (active-clojures)})


(defn update-min-clojure [lib]
(if-let [version (:min-clojure lib)]
(update-in lib [:clojures]
(fn [versions] (drop-while #(not= version %) versions)))
lib))

(defn update-exclude-jdk [lib]
(if-let [exclusions (:exclude-jdk lib)]
(update-in lib [:jdks]
(fn [versions] (remove (set exclusions) versions)))
lib))

(defn matrix-job-config [lib] (defn matrix-job-config [lib]
(render-template "matrix_job" (render-template "matrix_job"
(merge (matrix-job-defaults) lib))) (-> (matrix-job-defaults)
(merge lib)
(update-min-clojure)
(update-exclude-jdk))))


(defn write-release-job [lib] (defn write-release-job [lib]
(.mkdirs (job-dir (:name lib))) (.mkdirs (job-dir (:name lib)))
Expand Down
37 changes: 32 additions & 5 deletions hudson/config.xml
Expand Up @@ -7,6 +7,7 @@
<authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy"> <authorizationStrategy class="hudson.security.ProjectMatrixAuthorizationStrategy">
<permission>hudson.model.Hudson.Administer:abedra</permission> <permission>hudson.model.Hudson.Administer:abedra</permission>
<permission>hudson.model.Hudson.Administer:cemerick</permission> <permission>hudson.model.Hudson.Administer:cemerick</permission>
<permission>hudson.model.Hudson.Administer:chrisredinger</permission>
<permission>hudson.model.Hudson.Administer:richhickey</permission> <permission>hudson.model.Hudson.Administer:richhickey</permission>
<permission>hudson.model.Hudson.Administer:stuart.halloway</permission> <permission>hudson.model.Hudson.Administer:stuart.halloway</permission>
<permission>hudson.model.Hudson.Administer:stuartsierra</permission> <permission>hudson.model.Hudson.Administer:stuartsierra</permission>
Expand All @@ -16,9 +17,8 @@
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm"> <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup> <disableSignup>true</disableSignup>
</securityRealm> </securityRealm>
<systemMessage>&lt;p&gt;Clojure build server; deploying to &lt;a href=&quot;https://oss.sonatype.org/&quot;&gt;oss.sonatype.org&lt;/a&gt;; releases are sync&apos;ed to the &lt;a href=&quot;http://repo1.maven.org/maven2&quot;&gt;Maven Central Repository&lt;/a&gt;.&lt;/p&gt;&#xd; <systemMessage>&lt;p&gt;Clojure build server, deploying to &lt;a href=&quot;https://oss.sonatype.org/&quot;&gt;Sonatype OSS&lt;/a&gt;. See &lt;a href=&quot;http://dev.clojure.org/display/doc/Maven+Settings+and+Repositories&quot;&gt;Maven Settings and Repositories&lt;/a&gt; on the Clojure Wiki for more information.&#xd;
&lt;p&gt;Older &lt;a href=&quot;/releases&quot;&gt;releases&lt;/a&gt; and &lt;a href=&quot;/snapshots&quot;&gt;snapshots&lt;/a&gt; are hosted locally.&lt;/p&gt;&#xd; &lt;p&gt;All projects build on Sun/Oracle JDK 1.5. "-test-matrix" jobs test multiple JDKs and Clojure versions.&lt;/p&gt;</systemMessage>
&lt;p&gt;All projects build on Sun/Oracle JDK 1.5 unless specified otherwise.&lt;/p&gt;</systemMessage>
<jdks> <jdks>
<jdk> <jdk>
<name>Sun JDK 1.5</name> <name>Sun JDK 1.5</name>
Expand All @@ -36,10 +36,20 @@
<properties/> <properties/>
</jdk> </jdk>
<jdk> <jdk>
<name>IBM JDK 5</name> <name>IBM JDK 1.5</name>
<home>/usr/java/ibm-java2-x86_64-50</home> <home>/usr/java/ibm-java2-x86_64-50</home>
<properties/> <properties/>
</jdk> </jdk>
<jdk>
<name>IBM JDK 1.6</name>
<home>/usr/java/ibm-java-x86_64-sdk-6.0-9.2</home>
<properties/>
</jdk>
<jdk>
<name>IBM JDK 1.7</name>
<home>/usr/java/ibm-java-x86_64-sdk-7.0-0.0</home>
<properties/>
</jdk>
<jdk> <jdk>
<name>OpenJDK 1.6</name> <name>OpenJDK 1.6</name>
<home>/usr/java/java-1.6.0-openjdk-1.6.0.0.x86_64</home> <home>/usr/java/java-1.6.0-openjdk-1.6.0.0.x86_64</home>
Expand Down Expand Up @@ -92,13 +102,15 @@
</listView> </listView>
<listView> <listView>
<owner class="hudson" reference="../../.."/> <owner class="hudson" reference="../../.."/>
<name>Contrib Libraries</name> <name>Contrib</name>
<filterExecutors>false</filterExecutors> <filterExecutors>false</filterExecutors>
<filterQueue>false</filterQueue> <filterQueue>false</filterQueue>
<jobNames class="tree-set"> <jobNames class="tree-set">
<comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../listView/jobNames/comparator"/> <comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../listView/jobNames/comparator"/>
<string>algo.monads</string> <string>algo.monads</string>
<string>algo.monads-test-matrix</string> <string>algo.monads-test-matrix</string>
<string>algo.generic</string>
<string>algo.generic-test-matrix</string>
<string>core.incubator</string> <string>core.incubator</string>
<string>core.incubator-test-matrix</string> <string>core.incubator-test-matrix</string>
<string>core.logic</string> <string>core.logic</string>
Expand All @@ -107,10 +119,20 @@
<string>core.match-test-matrix</string> <string>core.match-test-matrix</string>
<string>core.unify</string> <string>core.unify</string>
<string>core.unify-test-matrix</string> <string>core.unify-test-matrix</string>
<string>core.memoize</string>
<string>core.memoize-test-matrix</string>
<string>core.cache</string>
<string>core.cache-test-matrix</string>
<string>core.contracts</string>
<string>core.contracts-test-matrix</string>
<string>data.codec</string>
<string>data.codec-test-matrix</string>
<string>data.csv</string> <string>data.csv</string>
<string>data.csv-test-matrix</string> <string>data.csv-test-matrix</string>
<string>data.finger-tree</string> <string>data.finger-tree</string>
<string>data.finger-tree-test-matrix</string> <string>data.finger-tree-test-matrix</string>
<string>data.generators</string>
<string>data.generators-test-matrix</string>
<string>data.json</string> <string>data.json</string>
<string>data.json-test-matrix</string> <string>data.json-test-matrix</string>
<string>data.priority-map</string> <string>data.priority-map</string>
Expand Down Expand Up @@ -143,6 +165,10 @@
<string>tools.namespace-test-matrix</string> <string>tools.namespace-test-matrix</string>
<string>tools.nrepl</string> <string>tools.nrepl</string>
<string>tools.nrepl-test-matrix</string> <string>tools.nrepl-test-matrix</string>
<string>tools.reader</string>
<string>tools.reader-test-matrix</string>
<string>tools.trace</string>
<string>tools.trace-test-matrix</string>
</jobNames> </jobNames>
<jobFilters/> <jobFilters/>
<columns> <columns>
Expand All @@ -164,6 +190,7 @@
<comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../listView/jobNames/comparator"/> <comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../listView/jobNames/comparator"/>
<string>build.ci</string> <string>build.ci</string>
<string>build.poms</string> <string>build.poms</string>
<string>rebuild-all-libraries</string>
</jobNames> </jobNames>
<jobFilters/> <jobFilters/>
<columns> <columns>
Expand Down

0 comments on commit eb4d025

Please sign in to comment.