1
1
import de.itemis.mps.gradle.*
2
+ import de.itemis.mps.gradle.tasks.MpsMigrate
3
+ import de.itemis.mps.gradle.tasks.Remigrate
4
+ import de.itemis.mps.gradle.downloadJBR.DownloadJbrForPlatform
2
5
import groovy.xml.XmlSlurper
3
6
import java.time.LocalDate
4
7
import java.time.format.DateTimeFormatter
@@ -9,21 +12,28 @@ buildscript {
9
12
repositories {
10
13
maven { url ' https://artifacts.itemis.cloud/repository/maven-mps/' }
11
14
}
12
- dependencies {
13
- classpath ' de.itemis.mps:mps-gradle-plugin:1.29.1.1.d7f2744'
14
- }
15
15
}
16
16
17
17
plugins {
18
18
id ' base'
19
19
id ' maven-publish'
20
+ id ' de.itemis.mps.gradle.common' version ' 1.29.+'
21
+ id ' de.itemis.mps.gradle.launcher' version ' 2.5.2.+'
20
22
id " com.github.breadmoirai.github-release" version " 2.4.1"
21
23
id " org.cyclonedx.bom" version " 1.8.2"
22
24
}
23
25
26
+ ext. dependencyRepositories = [
27
+ ' https://artifacts.itemis.cloud/repository/maven-mps/'
28
+ ]
29
+
24
30
repositories {
25
- maven {
26
- url ' https://artifacts.itemis.cloud/repository/maven-mps/'
31
+ // we don't use mavenLocal() repo, since it can cause various issues with resolving dependencies,
32
+ // see https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven-local
33
+ for (repoUrl in project. dependencyRepositories) {
34
+ maven {
35
+ url repoUrl
36
+ }
27
37
}
28
38
mavenCentral()
29
39
}
@@ -86,7 +96,7 @@ if (project.hasProperty('iets3OpenSourceVersion')) {
86
96
} else {
87
97
def isSnapshot = ! (currentBranch. equals(" master" ) || currentBranch. startsWith(" datev-loon-staging-" ) || currentBranch. startsWith(" datev-steuer-staging-" ))
88
98
version = GitBasedVersioning . getVersionWithCount(major, minor, buildNumber) + (isSnapshot ? " -SNAPSHOT" : " " )
89
- }
99
+ }
90
100
println " ##teamcity[buildNumber '${ version} ']"
91
101
} else {
92
102
version = " $major . $minor -SNAPSHOT"
@@ -105,6 +115,7 @@ ext.artifactsDir = new File(buildDir, 'artifacts')
105
115
106
116
configurations {
107
117
mps
118
+ rerunMigrationsBackend
108
119
languageLibs
109
120
junitAnt
110
121
pcollections // Synced to org.iets3.core.expr.base.collections.stubs/lib
@@ -113,6 +124,7 @@ configurations {
113
124
114
125
dependencies {
115
126
mps " com.jetbrains:mps:$mpsVersion "
127
+ rerunMigrationsBackend(" de.itemis.mps.build-backends:remigrate:0.0.5.+" )
116
128
languageLibs " org.mpsqa:all-in-one:$mpsQAVersion "
117
129
languageLibs " com.mbeddr:platform:$mbeddrVersion "
118
130
junitAnt ' org.apache.ant:ant-junit:1.10.15'
@@ -172,6 +184,8 @@ task resolveBigMath(type: Sync) {
172
184
173
185
task resolveDependencies (dependsOn : [' downloadJbr' , resolveMps, resolveLanguageLibs, resolvePcollections, resolveBigMath])
174
186
187
+ ext. mpsHomeDir = resolveMps. destinationDir
188
+
175
189
// Default arguments for ant scripts
176
190
def defaultScriptArgs = [
177
191
' mps.home' : resolveMps. destinationDir,
@@ -255,6 +269,39 @@ task failOnTestError() {
255
269
buildAndRunTests. configure { finalizedBy failOnTestError }
256
270
check. dependsOn buildAndRunTests
257
271
272
+ tasks. register(' migrate' , MpsMigrate ) {
273
+ dependsOn(resolveMps, ' resolveMpsForModelcheck' , ' downloadJbr' , ' buildLanguages' , ' buildAndRunTests' )
274
+ javaLauncher = tasks. named(' downloadJbr' , DownloadJbrForPlatform ). flatMap { it. javaLauncher }
275
+
276
+ haltOnPrecheckFailure = false
277
+ haltOnDependencyError = true
278
+
279
+ mpsHome = mpsHomeDir
280
+
281
+ projectDirectories. from(' code/languages/org.iets3.opensource' )
282
+ folderMacros[' iets3.github.opensource.home' ] = rootProject. layout. projectDirectory
283
+
284
+ pluginRoots. from(new File (mpsHomeDir, ' plugins' ))
285
+
286
+ maxHeapSize = ' 4G'
287
+ }
288
+
289
+ tasks. register(' remigrate' , Remigrate ) {
290
+ mustRunAfter(' migrate' )
291
+ mustRunAfter(' buildLanguages' , ' buildAndRunTests' )
292
+
293
+ dependsOn(resolveMps, ' resolveMpsForModelcheck' ,' downloadJbr' )
294
+
295
+ javaLauncher = tasks. named(' downloadJbr' , DownloadJbrForPlatform ). flatMap { it. javaLauncher }
296
+
297
+ mpsHome = mpsHomeDir
298
+ projectDirectories. from(' code/languages/org.iets3.opensource' )
299
+ folderMacros[' iets3.github.opensource.home' ] = rootProject. layout. projectDirectory
300
+
301
+ pluginRoots. from(new File (mpsHomeDir, ' plugins' ))
302
+ maxHeapSize = ' 4G'
303
+ }
304
+
258
305
apply plugin : ' modelcheck'
259
306
260
307
File modelcheckresult = new File (" $buildDir /TEST-checkProject.xml" )
0 commit comments