Skip to content

Commit e19fd59

Browse files
Merge remote-tracking branch 'origin/maintenance/MPS-2024.1' into merge/MPS-2024.1-partial
2 parents 757008f + 579f392 commit e19fd59

File tree

126 files changed

+1531
-1299
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+1531
-1299
lines changed

.github/dependabot.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: gradle
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
registries: "*"
8+
- package-ecosystem: github-actions
9+
directory: /
10+
schedule:
11+
interval: daily
12+
13+
registries:
14+
itemis:
15+
type: maven-repository
16+
url: https://artifacts.itemis.cloud/repository/maven-mps

.github/workflows/build_mpsqa.yml

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,38 +16,46 @@ on:
1616
required: false
1717

1818
env:
19-
GITHUB_TOKEN: ${{ secrets.MPSQA_GITHUB_PKG_REGISTRY }}
19+
GITHUB_TOKEN: ${{ secrets.MPS_CI_BUILD_BOT_ACCESS_TOKEN }}
2020

2121
jobs:
2222
build_mps_qa_packages:
2323
runs-on: ubuntu-latest
24-
env:
25-
DISPLAY: ':99'
2624

2725
steps:
28-
- uses: actions/checkout@v2
26+
- uses: actions/checkout@v4
2927

30-
- name: Setup headless environment
31-
run: |
32-
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
33-
34-
- name: Set up JDK 11
35-
uses: actions/setup-java@v1
28+
- name: Set up JDK
29+
uses: actions/setup-java@v4
3630
with:
37-
java-version: 11
38-
31+
java-version: 17
32+
distribution: temurin
33+
34+
- name: Set up Gradle
35+
uses: gradle/actions/setup-gradle@v4
36+
3937
- name: Build MPS-QA and migrate
40-
uses: gradle/gradle-build-action@v2
41-
with:
42-
arguments: >
43-
build migrate remigrate
44-
-Partifacts.itemis.cloud.user=${{secrets.ARTIFACTS_ITEMIS_CLOUD_USER}}
45-
-Partifacts.itemis.cloud.pw=${{secrets.ARTIFACTS_ITEMIS_CLOUD_PW}}
46-
wrapper-cache-enabled: true
47-
dependencies-cache-enabled: true
48-
dependencies-cache-key: gradle/dependency-locks/**
49-
dependencies-cache-exact: true
50-
configuration-cache-enabled: true
38+
run: |
39+
xvfb-run ./gradlew build migrate remigrate \
40+
-Partifacts.itemis.cloud.user=${{secrets.ARTIFACTS_ITEMIS_CLOUD_USER}} \
41+
-Partifacts.itemis.cloud.pw=${{secrets.ARTIFACTS_ITEMIS_CLOUD_PW}}
42+
43+
- name: Dump Java stacks on cancellation
44+
if: cancelled()
45+
run: |
46+
jps -mlv > build/jps.txt
47+
for pid in $(jps -q); do jstack -l -e $pid > build/stack$pid.txt || true; done
48+
49+
- name: Upload logs on cancellation or failure
50+
uses: actions/upload-artifact@v4
51+
if: cancelled() || failure()
52+
with:
53+
name: logs
54+
path: |
55+
build/system/log/
56+
build/system/testlog/
57+
build/jps.txt
58+
build/stack*.txt
5159
5260
- name: Check for no dirty files after build and migration
5361
run: |
@@ -62,21 +70,14 @@ jobs:
6270
fi
6371
6472
- name: Publish
65-
uses: gradle/gradle-build-action@v2
6673

6774
# Only publish on push (to maintenance or master) or when explicitly requested
6875
if: ${{ github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.publish == 'true') }}
6976

70-
with:
71-
arguments: >
72-
publish -x build_allInOne_package
73-
-Partifacts.itemis.cloud.user=${{secrets.ARTIFACTS_ITEMIS_CLOUD_USER}}
77+
run: |
78+
./gradlew publish -x build_allInOne_package \
79+
-Partifacts.itemis.cloud.user=${{secrets.ARTIFACTS_ITEMIS_CLOUD_USER}} \
7480
-Partifacts.itemis.cloud.pw=${{secrets.ARTIFACTS_ITEMIS_CLOUD_PW}}
75-
wrapper-cache-enabled: true
76-
dependencies-cache-enabled: true
77-
dependencies-cache-key: gradle/dependency-locks/**
78-
dependencies-cache-exact: true
79-
configuration-cache-enabled: true
8081
8182
- name: Archive distribution
8283
uses: actions/upload-artifact@v4

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,6 @@ TESTS-*.xml
2525
# RCP
2626
build/
2727
!/build/scripts/build_all_scripts.xml
28+
29+
# Mac-specific
30+
.DS_Store

build.gradle

Lines changed: 32 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ plugins {
99
id 'maven-publish'
1010
id 'co.riiid.gradle' version '0.4.2'
1111

12-
id 'de.itemis.mps.gradle.launcher' version '2.2.0.+'
12+
id 'de.itemis.mps.gradle.launcher' version '2.5.2.+'
1313
}
1414

15-
ext.jbrVers = '17.0.8.1-b1000.32'
15+
ext.jbrVers = '17.0.11-b1207.30'
1616

1717
downloadJbr {
1818
jbrVersion = jbrVers
@@ -27,44 +27,11 @@ if (System.env.CI != null && System.env.CI.toBoolean()) {
2727
ext.ciBuild = project.hasProperty("teamcity")
2828
}
2929

30-
// Detect jdk location, required to start ant with tools.jar on classpath otherwise javac and tests will fail
31-
String jdk_home
32-
33-
if (ext.has('java11_home')) {
34-
jdk_home = ext.get('java11_home')
35-
} else if (System.getenv('JB_JAVA11_HOME') != null) {
36-
jdk_home = System.getenv('JB_JAVA11_HOME')
37-
} else {
38-
def expected = JavaVersion.VERSION_11
39-
if (JavaVersion.current() < expected) {
40-
throw new GradleException("This build script requires Java 11 but you are currently using ${JavaVersion.current()}.\nWhat you can do:\n"
41-
+ " * Use project property java11_home to point to the Java 11 JDK.\n"
42-
+ " * Use environment variable JB_JAVA11_HOME to point to the Java 11 JDK\n"
43-
+ " * Run Gradle using Java 11")
44-
}
45-
jdk_home = System.getProperty('java.home')
46-
}
47-
48-
// Check JDK location
49-
if (!new File(jdk_home, "lib").exists()) {
50-
throw new GradleException("Unable to locate JDK home folder. Detected folder is: $jdk_home")
51-
}
52-
53-
logger.info 'Using JDK at {}', jdk_home
54-
55-
ext.jdk_home = jdk_home
56-
57-
ext.dependencyRepositories = [
58-
'https://maven.pkg.github.com/mbeddr/*',
59-
'https://artifacts.itemis.cloud/repository/maven-mps/'
60-
]
61-
62-
// Dependency versions
63-
ext.mpsVersion = '2023.2.1'
30+
ext.mpsVersion = '2024.1.1'
6431

6532
// Project versions
66-
ext.major = '2023'
67-
ext.minor = '2'
33+
ext.major = '2024'
34+
ext.minor = '1'
6835

6936
if (ciBuild) {
7037
String branch = GitBasedVersioning.gitBranch
@@ -90,20 +57,21 @@ configurations {
9057

9158
dependencies {
9259
mps "com.jetbrains:mps:$mpsVersion"
93-
antLib "org.apache.ant:ant-junit:1.10.6"
60+
antLib "org.apache.ant:ant-junit:1.10.15"
9461
antLib "org.jacoco:org.jacoco.ant:0.8.12"
9562
}
9663

9764
repositories {
98-
for (repoUrl in project.dependencyRepositories) {
99-
maven {
100-
url repoUrl
101-
credentials {
102-
username = project.findProperty("github_username") ?: System.getenv("GITHUB_ACTOR")
103-
password = project.findProperty("github_token") ?: System.getenv("GITHUB_TOKEN")
104-
}
65+
maven {
66+
url 'https://maven.pkg.github.com/mbeddr/*'
67+
credentials {
68+
username = project.findProperty("github_username") ?: System.getenv("GITHUB_ACTOR")
69+
password = project.findProperty("github_token") ?: System.getenv("GITHUB_TOKEN")
10570
}
10671
}
72+
maven {
73+
url 'https://artifacts.itemis.cloud/repository/maven-mps/'
74+
}
10775
mavenCentral()
10876
}
10977

@@ -128,8 +96,7 @@ if (project.skipResolveMps) {
12896
}
12997

13098
// tools needed for compiler support in ant calls
131-
ext.buildScriptClasspath = project.configurations.antLib.fileCollection { true } +
132-
project.files("$project.jdk_home/lib/tools.jar")
99+
ext.buildScriptClasspath = project.configurations.antLib
133100

134101
def artifactsDir = file("$buildDir/artifacts")
135102
def dependenciesDir = file("$buildDir/dependencies")
@@ -343,8 +310,21 @@ defaultTasks 'build'
343310

344311
task rebuild(dependsOn:[clean, build_allInOne_package])
345312

346-
ext.allProjectDirectories = { file('code/languages').listFiles({ File file -> file.directory } as FileFilter) }
347-
ext.mpsPluginRoots = ['mps-build', 'mps-console', 'mps-trove', 'mps-modelchecker']
313+
ext.allProjectDirectoriesInDependencyOrder = [
314+
'org.mpsqa.base',
315+
'org.mpsqa.testing',
316+
'org.mpsqa.build',
317+
318+
'org.mpsqa.arch',
319+
'org.mpsqa.clones',
320+
'org.mpsqa.deprecated',
321+
'org.mpsqa.lint',
322+
'org.mpsqa.mutant',
323+
'org.mpsqa.profile',
324+
'org.mpsqa.testing',
325+
'org.mpsqa.unused'
326+
].collect { file("code/languages/$it") }
327+
ext.mpsPluginRoots = ['mps-build', 'mps-console', 'mps-trove', 'mps-modelchecker', 'mps-testing']
348328
.collect { new File(mpsHomeDir, "plugins/$it") }
349329
ext.jbrJavaLauncher = tasks.named('downloadJbr', DownloadJbrForPlatform).flatMap { it.javaLauncher }
350330

@@ -354,7 +334,7 @@ tasks.register('migrate', MpsMigrate) {
354334
javaLauncher = jbrJavaLauncher
355335
mpsHome = mpsHomeDir
356336
folderMacros.put('mpsqa.home', layout.projectDirectory)
357-
projectDirectories.from(allProjectDirectories)
337+
projectDirectories.from(allProjectDirectoriesInDependencyOrder)
358338
pluginRoots.from(mpsPluginRoots)
359339

360340
haltOnPrecheckFailure = true
@@ -372,6 +352,6 @@ tasks.register('remigrate', Remigrate) {
372352
javaLauncher = jbrJavaLauncher
373353
mpsHome = mpsHomeDir
374354
folderMacros.put('mpsqa.home', layout.projectDirectory)
375-
projectDirectories.from(allProjectDirectories)
355+
projectDirectories.from(allProjectDirectoriesInDependencyOrder)
376356
pluginRoots.from(mpsPluginRoots)
377357
}

0 commit comments

Comments
 (0)