diff --git a/.travis.yml b/.travis.yml index 0357386b..80791a25 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,10 +3,20 @@ jdk: oraclejdk8 install: true script: ./gradlew test deploy: - provider: releases - api_key: - secure: dOEX78/Th6n5XAbfQKT8DCQbQOqE9C4etqtH7OsI4snYAUkZdxHmdmuFWoMqwnU9nbR+17+2f9XPpE9BfslnxMP21lvn6AP5jScFgeZzV1KJ7kPg1H8buxLvGiQLq1vjNBrmT/Fg5S7tZFWSljEVKRQczpbijdtiTTzdRu/dGCPrLJiijS1uSJet6AwJ4qd+HIXsrVlPny5XL36SCiF88HiYO1vMQFo3pOPCrELfSLHHmLohcdcLy21BTMsbaZwrFzgb4xnmoFRRMiqVOi0z/zOTCNz6AWwfZ+RrAS2YmBSMeIL0R0K22P1WStg1NiYYaapoMf1AESW0VdKm6bSxD2SgxdG7V0hGbOFpzd5uZ22PxtishIfWerwvHCOey2JgH/xl4oGmLqwxmaWJMIrsWI5ObSePFbukKH6kkdGCrZq83cnJonYNb8KckBN997iQI12AKahUDnHg+Se62KANqogcWpWCztCAzgyqOb0swYBQ53vUzwciwul2yzr8Hrm5N32OY9UcK5Hx9pRtSr3c9ykJybdPnzUcCJGdxvNdDek21fx41q+1Qr2EgeJon8BmBpyLwfngIL3DRFEcfxQzramV6kVRI1T67Pk6xD+mVrYDGFbGAGkElEvdrlnOFzWv0Pza8cIv9i13B4sNdQOYtyEwaT0UvzklMVHw8ifYT0M= - file: build/artifacts/typechecking-plugin//typechecking-0.2.zip - skip_cleanup: true - on: - tags: true + - provider: releases + api_key: + secure: dOEX78/Th6n5XAbfQKT8DCQbQOqE9C4etqtH7OsI4snYAUkZdxHmdmuFWoMqwnU9nbR+17+2f9XPpE9BfslnxMP21lvn6AP5jScFgeZzV1KJ7kPg1H8buxLvGiQLq1vjNBrmT/Fg5S7tZFWSljEVKRQczpbijdtiTTzdRu/dGCPrLJiijS1uSJet6AwJ4qd+HIXsrVlPny5XL36SCiF88HiYO1vMQFo3pOPCrELfSLHHmLohcdcLy21BTMsbaZwrFzgb4xnmoFRRMiqVOi0z/zOTCNz6AWwfZ+RrAS2YmBSMeIL0R0K22P1WStg1NiYYaapoMf1AESW0VdKm6bSxD2SgxdG7V0hGbOFpzd5uZ22PxtishIfWerwvHCOey2JgH/xl4oGmLqwxmaWJMIrsWI5ObSePFbukKH6kkdGCrZq83cnJonYNb8KckBN997iQI12AKahUDnHg+Se62KANqogcWpWCztCAzgyqOb0swYBQ53vUzwciwul2yzr8Hrm5N32OY9UcK5Hx9pRtSr3c9ykJybdPnzUcCJGdxvNdDek21fx41q+1Qr2EgeJon8BmBpyLwfngIL3DRFEcfxQzramV6kVRI1T67Pk6xD+mVrYDGFbGAGkElEvdrlnOFzWv0Pza8cIv9i13B4sNdQOYtyEwaT0UvzklMVHw8ifYT0M= + file: build/artifacts/typechecking-plugin//typechecking-0.2.zip + skip_cleanup: true + on: + branch: master + tags: true + - provider: pages + skip_cleanup: true + github_token: + secure: dOEX78/Th6n5XAbfQKT8DCQbQOqE9C4etqtH7OsI4snYAUkZdxHmdmuFWoMqwnU9nbR+17+2f9XPpE9BfslnxMP21lvn6AP5jScFgeZzV1KJ7kPg1H8buxLvGiQLq1vjNBrmT/Fg5S7tZFWSljEVKRQczpbijdtiTTzdRu/dGCPrLJiijS1uSJet6AwJ4qd+HIXsrVlPny5XL36SCiF88HiYO1vMQFo3pOPCrELfSLHHmLohcdcLy21BTMsbaZwrFzgb4xnmoFRRMiqVOi0z/zOTCNz6AWwfZ+RrAS2YmBSMeIL0R0K22P1WStg1NiYYaapoMf1AESW0VdKm6bSxD2SgxdG7V0hGbOFpzd5uZ22PxtishIfWerwvHCOey2JgH/xl4oGmLqwxmaWJMIrsWI5ObSePFbukKH6kkdGCrZq83cnJonYNb8KckBN997iQI12AKahUDnHg+Se62KANqogcWpWCztCAzgyqOb0swYBQ53vUzwciwul2yzr8Hrm5N32OY9UcK5Hx9pRtSr3c9ykJybdPnzUcCJGdxvNdDek21fx41q+1Qr2EgeJon8BmBpyLwfngIL3DRFEcfxQzramV6kVRI1T67Pk6xD+mVrYDGFbGAGkElEvdrlnOFzWv0Pza8cIv9i13B4sNdQOYtyEwaT0UvzklMVHw8ifYT0M= + on: + branch: master + tags: true + target_branch: updates + local_dir: build/artifacts/typechecking-plugin/updates diff --git a/build.gradle b/build.gradle index 80b935ae..2bd09ffd 100644 --- a/build.gradle +++ b/build.gradle @@ -1,3 +1,6 @@ +import groovy.xml.MarkupBuilder +import java.util.regex.* + defaultTasks 'init' allprojects { @@ -71,11 +74,39 @@ task init(dependsOn: allInitDependencies) { } } +def tagMatcher() { + System.env.TRAVIS_TAG =~ /v([0-9.]+)-.*\.([0-9]+)/ +} + +task generateUpdatePluginsXml { + onlyIf { + tagMatcher().find() + } + doLast { + def updatesDir = project.projectDir.absolutePath + "/build/artifacts/typechecking-plugin/updates" + mkdir(updatesDir) + + def baseUrl = "https://github.com/fisakov/constraints-typechecking/releases/download" + def zip = "/typechecking-0.2.zip" + + file(updatesDir + "/updatePlugins.xml").withWriter { w -> + new MarkupBuilder(new IndentPrinter(w, " ", true)). + plugins { + plugin( id: "jetbrains.mps.typechecking" , + url: baseUrl + "/$System.env.TRAVIS_TAG" + zip , + version: "${tagMatcher()[0][1]}-b${tagMatcher()[0][2]}" ) + { } + } + } + } +} + ant.taskdef(name: 'junit', classname: 'org.apache.tools.ant.taskdefs.optional.junit.JUnitTask', classpath: configurations.junitAnt.asPath) ant.importBuild('build.xml') +ant.properties.'ci.build.num' = "${tagMatcher().find() ? tagMatcher()[0][2] : '0'}".toString() // ensure 'init' runs before 'fetchDependencies' and 'declare-mps-tasks' fetchDependencies { @@ -99,3 +130,10 @@ classes { 'generate' } } + +assemble { + finalizedBy { + 'generateUpdatePluginsXml' + } +} + diff --git a/build.xml b/build.xml index ff5b0894..2b8ac5a1 100644 --- a/build.xml +++ b/build.xml @@ -3,6 +3,7 @@ + @@ -838,7 +839,7 @@ jetbrains.mps.typechecking Typechecking with Constraint Rules Experimental support for type checking with constraint rules - 0.2-b17 + 2.0-b${ci.build.num} JetBrains s.r.o. @@ -1348,7 +1349,7 @@ - mps.build.number=${mps.build.number}${line.separator}mps.date=${mps.date}${line.separator}mps.build.vcs.number=${mps.build.vcs.number}${line.separator}mps.teamcity.buildConfName=${mps.teamcity.buildConfName}${line.separator}mps.idea.platform.build.number=${mps.idea.platform.build.number}${line.separator}mps.mps.build.counter=${mps.mps.build.counter}${line.separator}mpsBootstrapCore.version=${mpsBootstrapCore.version} + typechecking-plugin.ci.build.num=${ci.build.num}${line.separator}mps.build.number=${mps.build.number}${line.separator}mps.date=${mps.date}${line.separator}mps.build.vcs.number=${mps.build.vcs.number}${line.separator}mps.teamcity.buildConfName=${mps.teamcity.buildConfName}${line.separator}mps.idea.platform.build.number=${mps.idea.platform.build.number}${line.separator}mps.mps.build.counter=${mps.mps.build.counter}${line.separator}mpsBootstrapCore.version=${mpsBootstrapCore.version} diff --git a/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps b/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps index 08d108a9..a32b701c 100644 --- a/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps +++ b/typechecking/solutions/jetbrains.mps.typechecking.build/models/jetbrains.mps.typechecking.build.mps @@ -26,9 +26,15 @@ + + + + + + @@ -73,6 +79,9 @@ + + + @@ -177,8 +186,11 @@ - - + + + + + @@ -1521,6 +1533,16 @@ + + + + + + + + + +