From b0328b750092b5f1db0614f5df05f7c1e5d78170 Mon Sep 17 00:00:00 2001 From: Vojin Jovanovic Date: Tue, 11 Nov 2025 12:12:31 +0100 Subject: [PATCH 1/3] Add proper labeling and java run stage --- .../scripts/run-consecutive-tests.sh | 28 +++++++++++-------- ...rify-new-library-version-compatibility.yml | 10 +++++-- build.gradle | 2 +- .../org.graalvm.internal.tck-harness.gradle | 4 --- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/.github/workflows/scripts/run-consecutive-tests.sh b/.github/workflows/scripts/run-consecutive-tests.sh index 26036a4aa..e57ac0fcc 100644 --- a/.github/workflows/scripts/run-consecutive-tests.sh +++ b/.github/workflows/scripts/run-consecutive-tests.sh @@ -61,17 +61,23 @@ for VERSION in "${VERSIONS[@]}"; do echo " Testing $TEST_COORDINATES:$VERSION" echo "$DELIMITER" - - if ! run_multiple_attempts "javac compile" 1 compileTestJava; then - break - fi - - if ! run_multiple_attempts "native-image build" 1 nativeTestCompile; then - break - fi - - if ! run_multiple_attempts "native-image run" 3 test; then - break + if ! run_multiple_attempts "native-image run" 1 test; then + # failing execution: bisect + if ! run_multiple_attempts "javac compile" 1 compileTestJava; then + break + fi + + if ! run_multiple_attempts "java run" 1 javaTest; then + break + fi + + if ! run_multiple_attempts "native-image build" 1 nativeTestCompile; then + break + fi + + if ! run_multiple_attempts "native-image run" 3 test; then + break + fi fi echo "PASSED:$VERSION" diff --git a/.github/workflows/verify-new-library-version-compatibility.yml b/.github/workflows/verify-new-library-version-compatibility.yml index 652f56fc8..a8510f6a3 100644 --- a/.github/workflows/verify-new-library-version-compatibility.yml +++ b/.github/workflows/verify-new-library-version-compatibility.yml @@ -219,6 +219,7 @@ jobs: FAILED_VERSION="${{ steps.runtests.outputs.failed_version }}" REPO="${{ github.repository }}" TITLE="${{ env.ISSUE_TITLE_PREFIX }}${{ steps.runtests.outputs.failure_type }}${{ env.ISSUE_TITLE_MIDDLE }}${{ matrix.item.name }}:$FAILED_VERSION" + FAILURE_LABEL="fails-$(echo "${{ steps.runtests.outputs.failure_type }}" | sed 's/ /-/g')" BODY_FILE=$(mktemp) # Use single-quoted here-doc to disable any shell expansion of log content @@ -237,8 +238,13 @@ jobs: echo "Updating existing issue #$ISSUE_NUMBER" gh issue edit "$ISSUE_NUMBER" --repo "$REPO" --body-file "$BODY_FILE" else - echo "Creating new issue" - gh issue create --repo "$REPO" --title "$TITLE" --body-file "$BODY_FILE" + echo "Creating a new issue" + gh issue create \ + --repo "$REPO" \ + --title "$TITLE" \ + --body-file "$BODY_FILE" \ + --label "library-unsupported-version" \ + --label "$FAILURE_LABEL" fi rm "$BODY_FILE" diff --git a/build.gradle b/build.gradle index ee694bc4c..2171a2a2a 100644 --- a/build.gradle +++ b/build.gradle @@ -102,7 +102,7 @@ static List testAllCommands(String gradleCmd, String target) { tasks.register('testAllParallel') { t -> t.group = "verification" - t.setDescription("For each target, run clean and pullAllowedDockerImages first (sequentially), then run style checks and individual testing stages (checkstyle, spotlessCheck, checkMetadataFiles, fetchExistingLibrariesWithNewerVersions, test) concurrently with isolated logs. Options: -Pcoordinates to specify a single coordinate or 1/64 for the pull step; -Pparallelism to control the number of concurrent tasks.") + t.setDescription("For each target, run clean and pullAllowedDockerImages first (sequentially), then run style checks and individual testing stages (${testAllCommands('', '').collect { it.name }.join(', ')}) concurrently with isolated logs. Options: -Pcoordinates to specify a single coordinate or 1/64 for the pull step; -Pparallelism to control the number of concurrent tasks.") doLast { def selectedArtifact = "org.postgresql:postgresql:42.7.3" diff --git a/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle b/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle index 2b0ed2dd0..b3cd109eb 100644 --- a/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle +++ b/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle @@ -68,9 +68,6 @@ Provider checkstyle = tasks.register("checkstyle") { task -> // gradle compileTestJava -Pcoordinates= Provider compileTestJava = tasks.register("compileTestJava") { task -> - task.setDescription("Compiles sources (javac) for all subprojects") - task.setGroup(LifecycleBasePlugin.BUILD_GROUP) -} as Provider // gradle javaTest -Pcoordinates= Provider javaTest = tasks.register("javaTest") { task -> @@ -90,7 +87,6 @@ Provider checkMetadataFiles = tasks.register("checkMetadataFiles") { task task.setGroup(METADATA_GROUP) } as Provider - tasks.named("check").configure { dependsOn(checkstyle) } From 90b8450d25266e5882dbd45d80d062aedec90b4e Mon Sep 17 00:00:00 2001 From: Vojin Jovanovic Date: Fri, 14 Nov 2025 19:09:45 +0100 Subject: [PATCH 2/3] Run library verification daily --- .github/workflows/verify-new-library-version-compatibility.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/verify-new-library-version-compatibility.yml b/.github/workflows/verify-new-library-version-compatibility.yml index a8510f6a3..99f0d6757 100644 --- a/.github/workflows/verify-new-library-version-compatibility.yml +++ b/.github/workflows/verify-new-library-version-compatibility.yml @@ -2,7 +2,7 @@ name: "Verify compatibility with latest library versions" on: schedule: - - cron: '0 0 * * 0' + - cron: '0 0 * * *' workflow_dispatch: permissions: From e60f7c9328a8530c5c01762b8f36107f58cf2648 Mon Sep 17 00:00:00 2001 From: Vojin Jovanovic Date: Fri, 14 Nov 2025 19:18:48 +0100 Subject: [PATCH 3/3] Label the update PRs --- .../verify-new-library-version-compatibility.yml | 8 ++++++-- .../main/groovy/org.graalvm.internal.tck-harness.gradle | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/verify-new-library-version-compatibility.yml b/.github/workflows/verify-new-library-version-compatibility.yml index 99f0d6757..50e6fbac7 100644 --- a/.github/workflows/verify-new-library-version-compatibility.yml +++ b/.github/workflows/verify-new-library-version-compatibility.yml @@ -255,7 +255,6 @@ jobs: permissions: write-all env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - if: ${{ always() }} needs: - get-all-libraries - test-all-metadata @@ -269,4 +268,9 @@ jobs: git config --local user.name "Github Actions" git fetch origin ${{ needs.get-all-libraries.outputs.branch }} git checkout ${{ needs.get-all-libraries.outputs.branch }} - gh pr create --title "[Automation] Update supported library versions $(date '+%Y-%m-%dT%H:%M')" --body "This pull request updates supported versions of the existing libraries in the repo" + gh pr create \ + --title "[Automation] Update supported library versions $(date '+%Y-%m-%dT%H:%M')" \ + --body "This pull request updates supported versions of the existing libraries in the repo" \ + --reviewer "kimeta" \ + --assignee "vjovanov" \ + --label "library-bulk-update" diff --git a/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle b/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle index b3cd109eb..dcacdc4f8 100644 --- a/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle +++ b/tests/tck-build-logic/src/main/groovy/org.graalvm.internal.tck-harness.gradle @@ -68,6 +68,9 @@ Provider checkstyle = tasks.register("checkstyle") { task -> // gradle compileTestJava -Pcoordinates= Provider compileTestJava = tasks.register("compileTestJava") { task -> + task.setDescription("Compiles sources (javac) for all subprojects") + task.setGroup(LifecycleBasePlugin.BUILD_GROUP) +} as Provider // gradle javaTest -Pcoordinates= Provider javaTest = tasks.register("javaTest") { task ->