diff --git a/.github/workflows/build-and-run-tests-from-branch.yml b/.github/workflows/build-and-run-tests-from-branch.yml index ff5f7e456c..021a991d4e 100644 --- a/.github/workflows/build-and-run-tests-from-branch.yml +++ b/.github/workflows/build-and-run-tests-from-branch.yml @@ -19,7 +19,23 @@ env: IMAGE_NAME: utbot_java_cli DOCKERFILE_PATH: docker/Dockerfile_java_cli # Environment variable setting gradle options. - GRADLE_OPTS: "-XX:MaxHeapSize=2048m -Dorg.gradle.jvmargs='-XX:MaxHeapSize=2048m -XX:MaxPermSize=512m -Dorg.gradle.daemon=false' -Dorg.gradle.daemon=false" + # + # When configuring Gradle behavior you can use these methods, + # listed in order of highest to lowest precedence (first one wins): + # - Command-line flags such as --build-cache. + # These have precedence over properties and environment variables. + # - System properties such as systemProp.http.proxyHost=somehost.org + # stored in a gradle.properties file in a root project directory. + # - Gradle properties such as org.gradle.caching=true that are + # typically stored in a gradle.properties file in a project + # directory or in the GRADLE_USER_HOME. + # - Environment variables such as GRADLE_OPTS sourced by the + # environment that executes Gradle. + # + # read more at: https://docs.gradle.org/current/userguide/build_environment.html + # + # example of GRADLE_OPTS: +# GRADLE_OPTS: "-XX:MaxHeapSize=2048m -Dorg.gradle.daemon=false -Dorg.gradle.parallel=false -Dkotlin.compiler.execution.strategy=in-process" PUSHGATEWAY_HOSTNAME: monitoring.utbot.org ELK_HOSTNAME: logs.utbot.org FILEBEAT_DIR: /tmp/filebeat @@ -115,7 +131,7 @@ jobs: restore-keys: ${{ runner.os }}-gradle-framework - name: Run tests run: | - gradle --build-cache --no-daemon :utbot-framework-test:test ${{ matrix.project.TESTS_TO_RUN }} + gradle --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx4g :utbot-framework-test:test ${{ matrix.project.TESTS_TO_RUN }} - name: Upload logs if: ${{ always() }} @@ -191,13 +207,13 @@ jobs: id: first-project run: | cd ${{ matrix.projects.first }} - gradle build --build-cache --no-daemon + gradle build --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx4g - name: Build project ${{ matrix.projects.second }} if: ${{ steps.first-project.outcome != 'cancelled' && steps.first-project.outcome != 'skipped' }} run: | cd ${{ matrix.projects.second }} - gradle build --build-cache --no-daemon + gradle build --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx4g - name: Upload test report if tests have failed if: ${{ failure() }} @@ -266,7 +282,7 @@ jobs: - name: Run tests run: | cd ${{ matrix.project }} - gradle build --build-cache --no-daemon + gradle build --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx4g - name: Upload test report if tests have failed if: ${{ failure() }} diff --git a/.github/workflows/build-and-run-tests.yml b/.github/workflows/build-and-run-tests.yml index b3c62a1559..d434016a8d 100644 --- a/.github/workflows/build-and-run-tests.yml +++ b/.github/workflows/build-and-run-tests.yml @@ -14,8 +14,6 @@ env: REGISTRY: ghcr.io IMAGE_NAME: utbot_java_cli DOCKERFILE_PATH: docker/Dockerfile_java_cli - # Environment variable setting gradle options. - GRADLE_OPTS: "-XX:MaxHeapSize=2048m -Dorg.gradle.jvmargs='-XX:MaxHeapSize=2048m -XX:MaxPermSize=512m -Dorg.gradle.daemon=false' -Dorg.gradle.daemon=false" jobs: build-and-run-tests: @@ -43,7 +41,7 @@ jobs: - name: Build UTBot Java CLI run: | cd utbot-cli - gradle build --no-daemon -x test -PsemVer=${{ env.VERSION }} + gradle build --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx2g -Dkotlin.daemon.jvm.options=-Xmx4g -x test -PsemVer=${{ env.VERSION }} - name: Set docker tag run: # "You can make an environment variable available to any subsequent steps in a workflow job by diff --git a/.github/workflows/public-rider-plugin.yml b/.github/workflows/public-rider-plugin.yml index fe78d8c3da..f164079545 100644 --- a/.github/workflows/public-rider-plugin.yml +++ b/.github/workflows/public-rider-plugin.yml @@ -31,10 +31,6 @@ on: - alpha - beta -env: - # Environment variable setting gradle options. - GRADLE_OPTS: "-XX:MaxHeapSize=2048m -Dorg.gradle.jvmargs='-XX:MaxHeapSize=2048m -XX:MaxPermSize=512m -Dorg.gradle.daemon=false' -Dorg.gradle.daemon=false" - # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "greet" @@ -75,7 +71,7 @@ jobs: - name: Build UTBot Rider plugin run: | - gradle clean :utbot-rider:buildPlugin --no-daemon -PsemVer=${{ env.VERSION }} -PincludeRiderInBuild=true + gradle clean :utbot-rider:buildPlugin --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx2g -Dkotlin.daemon.jvm.options=-Xmx4g -PsemVer=${{ env.VERSION }} -PincludeRiderInBuild=true cd utbot-rider/build/distributions unzip utbot-rider-${{ env.VERSION }}.zip rm utbot-rider-${{ env.VERSION }}.zip diff --git a/.github/workflows/publish-on-github-packages.yml b/.github/workflows/publish-on-github-packages.yml index 69fd73e0bc..1404878c63 100644 --- a/.github/workflows/publish-on-github-packages.yml +++ b/.github/workflows/publish-on-github-packages.yml @@ -7,10 +7,6 @@ on: type: string required: true description: "commit SHA: e.g. cab4799c" - -env: - # Environment variable setting gradle options. - GRADLE_OPTS: "-XX:MaxHeapSize=2048m -Dorg.gradle.jvmargs='-XX:MaxHeapSize=2048m -XX:MaxPermSize=512m -Dorg.gradle.daemon=false' -Dorg.gradle.daemon=false" jobs: build-and-run-tests: diff --git a/.github/workflows/publish-plugin-and-cli-from-branch.yml b/.github/workflows/publish-plugin-and-cli-from-branch.yml index 53bac40c73..7255c32a37 100644 --- a/.github/workflows/publish-plugin-and-cli-from-branch.yml +++ b/.github/workflows/publish-plugin-and-cli-from-branch.yml @@ -40,10 +40,6 @@ on: - alpha - beta -env: - # Environment variable setting gradle options. - GRADLE_OPTS: "-XX:MaxHeapSize=2048m -Dorg.gradle.jvmargs='-XX:MaxHeapSize=2048m -XX:MaxPermSize=512m -Dorg.gradle.daemon=false' -Dorg.gradle.daemon=false" - jobs: publish_plugin_and_cli: runs-on: ubuntu-20.04 @@ -79,7 +75,7 @@ jobs: - name: Build UTBot IntelliJ IDEA plugin run: | - gradle clean buildPlugin --no-daemon -PsemVer=${{ env.VERSION }} + gradle clean buildPlugin --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx2g -Dkotlin.daemon.jvm.options=-Xmx4g -PsemVer=${{ env.VERSION }} cd utbot-intellij/build/distributions unzip utbot-intellij-${{ env.VERSION }}.zip rm utbot-intellij-${{ env.VERSION }}.zip @@ -93,7 +89,7 @@ jobs: - name: Build UTBot CLI run: | cd utbot-cli - gradle clean build --no-daemon -PsemVer=${{ env.VERSION }} + gradle clean build --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx2g -Dkotlin.daemon.jvm.options=-Xmx4g -PsemVer=${{ env.VERSION }} - name: Archive UTBot CLI uses: actions/upload-artifact@v3 diff --git a/.github/workflows/run-chosen-tests-from-branch.yml b/.github/workflows/run-chosen-tests-from-branch.yml index 786c55eeb7..57d56ad867 100644 --- a/.github/workflows/run-chosen-tests-from-branch.yml +++ b/.github/workflows/run-chosen-tests-from-branch.yml @@ -28,8 +28,6 @@ on: description: "{package-name}.{class-name-optional}.{test-name-optional}" env: - # Environment variable setting gradle options. - GRADLE_OPTS: "-XX:MaxHeapSize=2048m -Dorg.gradle.jvmargs='-XX:MaxHeapSize=2048m -XX:MaxPermSize=512m -Dorg.gradle.daemon=false' -Dorg.gradle.daemon=false" PUSHGATEWAY_HOSTNAME: monitoring.utbot.org jobs: @@ -51,7 +49,7 @@ jobs: - name: Run chosen tests run: | - gradle :${{ github.event.inputs.project-name }}:test --no-daemon --tests ${{ github.event.inputs.tests-bunch-name }} + gradle :${{ github.event.inputs.project-name }}:test --no-daemon --build-cache --no-parallel -Dorg.gradle.jvmargs=-Xmx2g -Dkotlin.daemon.jvm.options=-Xmx4g --tests ${{ github.event.inputs.tests-bunch-name }} - name: Upload ${{ github.event.inputs.project-name }} tests report if tests have failed if: ${{ failure() }} diff --git a/gradle.properties b/gradle.properties index af70eca1b1..4a172b8ed8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -75,16 +75,24 @@ openblasVersion=0.3.10-1.5.4 arpackNgVersion=3.7.0-1.5.4 # configuration for build server -org.gradle.daemon=false -org.gradle.parallel=false -org.gradle.jvmargs="-XX:MaxHeapSize=6144m" -kotlin.compiler.execution.strategy=in-process -org.gradle.caching=false +# +# the following options are passed to gradle command explicitly (see appropriate workflow): +# --build-cache (the same as org.gradle.caching=true) +# --no-daemon (the same as org.gradle.daemon=false) +# +# read about options precedence at: https://docs.gradle.org/current/userguide/build_environment.html +org.gradle.jvmargs="-Xmx6g" # configuration for local compilation - much faster -#org.gradle.daemon=true -#kotlin.daemon.jvm.options=-Xmx4g -#org.gradle.parallel=true -#org.gradle.caching=true -#org.gradle.workers.max=8 -#org.gradle.jvmargs="-XX:MaxHeapSize=6144m" \ No newline at end of file +# overriden by some parameters in CI, read below about each option +# +# overrided by --no-daemon +org.gradle.daemon=true +# overrided by -Dkotlin.daemon.jvm.options=-Xmx4g +kotlin.daemon.jvm.options=-Xmx4g +# overrided by --no-parallel +org.gradle.parallel=true +# not overrided, we use cache in CI as well +org.gradle.caching=true +# there is no need to override the option below because parallel execution is disabled by --no-parallel +org.gradle.workers.max=8