From 0be8827cd15f9ceb3c98b4f95ce79dc73698a5ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergej=20Ko=C5=A1=C4=8Dejev?= Date: Fri, 21 Nov 2025 19:39:18 +0100 Subject: [PATCH] ci: test each MPS version separately to conserve disk space --- .github/workflows/build.yml | 52 ++++++++++++++++++++++++++++++------- gradle.properties | 1 + 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3b61c4e..245119a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,17 +1,38 @@ -# This workflow will build a Java project with Gradle -# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle - -name: Java CI with Gradle +name: Build on: push: - branches: [ "main" ] + branches: main pull_request: - branches: [ "main" ] jobs: - build: + assemble: + runs-on: ubuntu-latest + outputs: + mps_versions: ${{ steps.mps_versions.outputs.mps_versions }} + steps: + - uses: actions/checkout@v4 + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '21' + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + - name: Assemble + run: ./gradlew --no-daemon --no-parallel assemble + - name: Output MPS versions + id: mps_versions + run: | + mps_versions=$(jq > "$GITHUB_OUTPUT" + + test: + needs: assemble runs-on: ubuntu-latest + strategy: + matrix: + mps_version: ${{ fromJSON(needs.assemble.outputs.mps_versions) }} steps: - uses: actions/checkout@v4 - name: Set up JDK @@ -19,7 +40,18 @@ jobs: with: distribution: 'temurin' java-version: '21' - - name: Setup Gradle + - name: Set up Gradle uses: gradle/actions/setup-gradle@v4 - - name: Build with Gradle - run: ./gradlew build + - name: Test + run: ./gradlew --no-daemon --no-parallel testMps${{ matrix.mps_version }} + + # The job that acts as a required check for pull requests + build: + needs: test + runs-on: ubuntu-latest + steps: + - run: exit 1 + if: | + contains(needs.*.result, 'failure') || + contains(needs.*.result, 'cancelled') || + contains(needs.*.result, 'skipped') diff --git a/gradle.properties b/gradle.properties index dd32300..34c035b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,5 @@ version.backend=1.24.2 version.project-loader=4.0.0 # A comma-separated list of MPS releases or prereleases to test against. +# Also used in the GitHub workflow to test each version in parallel supportedMpsVersions=2022.3.3,2023.2.2,2024.1.2,2024.3.1,251.23774.10091