]> gitweb.factorcode.org Git - factor.git/commitdiff
zealot.factor: Test against the clean branch if we are pushing to master.
authorDoug Coleman <doug.coleman@gmail.com>
Sat, 7 Jul 2018 05:18:23 +0000 (00:18 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Sat, 7 Jul 2018 06:13:19 +0000 (01:13 -0500)
extra/zealot/factor/factor.factor

index 4382e942371d996fc690854d03a24c66bc5435e8..5d5327c022483a89509b06e297c5a6be12f9a6ec 100644 (file)
@@ -1,12 +1,12 @@
 ! Copyright (C) 2017 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays bootstrap.image bootstrap.image.upload
-calendar cli.git combinators concurrency.combinators environment
-formatting fry http.client io io.directories io.launcher
-io.pathnames kernel math.parser memory modern.paths namespaces
-parser.notes prettyprint sequences sequences.extras sets
-splitting system system-info threads tools.test
-tools.test.private vocabs vocabs.hierarchy
+USING: accessors arrays assocs bootstrap.image
+bootstrap.image.upload calendar cli.git combinators
+concurrency.combinators environment formatting fry http.client
+io io.directories io.launcher io.pathnames kernel math.parser
+memory modern.paths namespaces parser.notes prettyprint
+sequences sequences.extras sets splitting system system-info
+threads tools.test tools.test.private vocabs vocabs.hierarchy
 vocabs.hierarchy.private vocabs.loader vocabs.metadata zealot ;
 IN: zealot.factor
 
@@ -170,6 +170,10 @@ M: windows factor-path "./factor.com" ;
         [ "ZEALOT TESTING ROOTS" print flush drop zealot-test-commands ]
     } 2cleave ;
 
+: factor-clean-branch ( -- str )
+    os cpu [ name>> ] bi@ { { CHAR: . CHAR: - } } substitute
+    "-" glue "origin/clean-" prepend ;
+
 : vocab-path>vocab ( path -- vocab )
     [ parent-directory ] map
     [ "/" split1 nip ] map
@@ -190,8 +194,21 @@ M: windows factor-path "./factor.com" ;
 : changed-factor-vocabs-from-master ( -- vocabs )
     "HEAD" "origin/master" changed-factor-vocabs ;
 
+: changed-factor-vocabs-from-clean ( -- vocabs )
+    "HEAD" factor-clean-branch changed-factor-vocabs ;
+
+: testing-a-branch? ( -- ? )
+    "CI_BRANCH" os-env "master" or
+    "master" = not ;
+
 : reject-unloadable-vocabs ( vocabs -- vocabs' )
     [ don't-load? ] reject ;
 
+! Test changes from a CI_BRANCH against origin/master
+! Test master against last clean build, e.g. origin/clean-linux-x86-64
 : ci-vocabs-to-test ( -- vocabs )
-    changed-factor-vocabs-from-master reject-unloadable-vocabs ;
\ No newline at end of file
+    testing-a-branch? [
+        changed-factor-vocabs-from-master
+    ] [
+        changed-factor-vocabs-from-clean
+    ] if reject-unloadable-vocabs ;
\ No newline at end of file