From f26ddda4008ce03307eb8cac749a4d6f3d65c8af Mon Sep 17 00:00:00 2001 From: Stephane Bouchet Date: Fri, 31 Jan 2025 09:54:25 +0100 Subject: [PATCH] chore: migrate to intellij gradle plugin 2.x Signed-off-by: Stephane Bouchet --- .github/workflows/itests.yml | 31 +++++-------------- .../intellij/quarkus/tests/BasicTest.java | 16 +++++++++- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/.github/workflows/itests.yml b/.github/workflows/itests.yml index b41957044..8c37dca0a 100644 --- a/.github/workflows/itests.yml +++ b/.github/workflows/itests.yml @@ -22,21 +22,8 @@ jobs: java-version: 17 - name: Run integration tests run: | - sudo tcpdump -nn -i any -w sntp.cap & - sleep 1 chmod +x gradlew xvfb-run ./gradlew integrationTest --info --continue - - name: Upload capture - if: always() - run: | - sleep 1 - sudo kill -2 $(pgrep tcpdump) - sleep 1 - - uses: actions/upload-artifact@v4 - if: always() - with: - name: tcpdump - path: sntp.cap - uses: actions/upload-artifact@v4 with: name: ${{ runner.os }}-integration-test-reports @@ -46,8 +33,8 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{ runner.os }}-screenshots - path: | - build/screenshots/ + path: build/screenshots/ + if-no-files-found: 'ignore' if: always() build-macos: @@ -61,8 +48,7 @@ jobs: distribution: temurin java-version: 17 - name: Run integration tests - run: | - ./gradlew integrationTest + run: ./gradlew integrationTest - uses: actions/upload-artifact@v4 with: name: ${{ runner.os }}-integration-test-reports @@ -72,8 +58,8 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{ runner.os }}-screenshots - path: | - build/screenshots/ + path: build/screenshots/ + if-no-files-found: 'ignore' if: always() build-windows: @@ -87,8 +73,7 @@ jobs: distribution: temurin java-version: 17 - name: Run integration tests - run: | - .\gradlew.bat integrationTest + run: .\gradlew.bat integrationTest shell: powershell - uses: actions/upload-artifact@v4 with: @@ -99,6 +84,6 @@ jobs: uses: actions/upload-artifact@v4 with: name: ${{ runner.os }}-screenshots - path: | - build\screenshots\ + path: build\screenshots\ + if-no-files-found: 'ignore' if: always() diff --git a/src/it/java/org/jboss/tools/intellij/quarkus/tests/BasicTest.java b/src/it/java/org/jboss/tools/intellij/quarkus/tests/BasicTest.java index 2f3ecc70d..989eff908 100644 --- a/src/it/java/org/jboss/tools/intellij/quarkus/tests/BasicTest.java +++ b/src/it/java/org/jboss/tools/intellij/quarkus/tests/BasicTest.java @@ -11,10 +11,12 @@ package org.jboss.tools.intellij.quarkus.tests; import com.intellij.remoterobot.RemoteRobot; +import com.intellij.remoterobot.fixtures.CommonContainerFixture; import com.intellij.remoterobot.fixtures.ComponentFixture; import com.intellij.remoterobot.fixtures.JButtonFixture; import com.intellij.remoterobot.fixtures.JTextFieldFixture; import com.intellij.remoterobot.fixtures.JTreeFixture; +import com.intellij.remoterobot.utils.WaitForConditionTimeoutException; import com.redhat.devtools.intellij.commonuitest.UITestRunner; import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.FlatWelcomeFrame; import com.redhat.devtools.intellij.commonuitest.fixtures.dialogs.project.NewProjectDialogWizard; @@ -44,6 +46,7 @@ import java.time.Duration; import static com.intellij.remoterobot.search.locators.Locators.byXpath; +import static com.intellij.remoterobot.utils.RepeatUtilsKt.waitFor; import static com.intellij.remoterobot.utils.RepeatUtilsKt.waitForIgnoringError; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -133,12 +136,23 @@ private void createQuarkusProject(RemoteRobot remoteRobot, String projectName, B //minimizeProjectImportPopupIfItAppears(); IdeStatusBar ideStatusBar = remoteRobot.find(IdeStatusBar.class, Duration.ofSeconds(10)); - ideStatusBar.waitUntilProjectImportIsComplete(); + waitFor(Duration.ofSeconds(30), Duration.ofSeconds(3), "The project import did not finish in 5 minutes.", this::didProjectImportFinish); + + //ideStatusBar.waitUntilProjectImportIsComplete(); MainIdeWindow mainIdeWindow = remoteRobot.find(MainIdeWindow.class, Duration.ofSeconds(5)); mainIdeWindow.maximizeIdeWindow(); ideStatusBar.waitUntilAllBgTasksFinish(500); } + private boolean didProjectImportFinish() { + try { + remoteRobot.find(ComponentFixture.class, byXpath(com.redhat.devtools.intellij.commonuitest.utils.constants.XPathDefinitions.ENGRAVED_LABEL), Duration.ofSeconds(1)); + } catch (WaitForConditionTimeoutException e) { + return true; + } + return false; + } + private void minimizeProjectImportPopupIfItAppears() { try { waitForIgnoringError(Duration.ofSeconds(30), Duration.ofMillis(200), "Close the project import popup if it appears...", () -> {