diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index a66a4b2eb..7be385dd3 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -10,49 +10,53 @@ jobs: strategy: matrix: - os: [ubuntu-latest] - java: ["17"] + os: [ ubuntu-latest, macos-latest, windows-latest ] + java: [ 17, 18, 19, 20, 21 ] fail-fast: false steps: - name: Checkout PR branch - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} # Checkout global JBT settings.xml - name: Checkout JBoss Tools Build CI - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: repository: jbosstools/jbosstools-build-ci path: build-ci - # Java JDK 11 used for maven build + # Java JDK used for maven build - name: Setup Java ${{ matrix.java }} - uses: actions/setup-java@v1 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} - java-package: jdk # (jre, jdk, or jdk+fx) - defaults to jdk - architecture: x64 - - # Try to find and apply jbosstools cache - - name: Cache local Maven repository for JBoss Tools components - uses: actions/cache@v2 + distribution: 'temurin' + cache: 'maven' + + # Install Maven 3.9 + - name: Set up Maven + uses: stCarolas/setup-maven@07fbbe97d97ef44336b7382563d66743297e442f #v4.5 with: - path: ~/.m2/repository - key: jbosstools-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - jbosstools-${{ runner.os }}-maven- + maven-version: 3.9.4 # Build and compile using Maven - - name: Build/Compile and run unit tests - uses: GabrielBB/xvfb-action@86d97bde4a65fe9b290c0b3fb92c2c4ed0e5302d #v1 - with: - run: mvn clean verify -U -fae -B --settings build-ci/maven-settings.xml -DskipITests=true -Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true -ntp + - name: Build/Compile and run unit tests (Linux) + run: xvfb-run -a mvn clean verify -U -fae -B --settings build-ci/maven-settings.xml -DskipITests=true -Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true -ntp + if: ${{ matrix.os == 'ubuntu-latest' }} + - name: Build/Compile and run unit tests (Mac) + run: mvn clean verify -U -fae -B --settings build-ci/maven-settings.xml -DskipITests=true -Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true -ntp + if: ${{ matrix.os == 'macos-latest' }} + # as below, do fail builds on errors + - name: Build/Compile and run unit tests (Windows) + run: mvn clean verify --% -U -fae -B --settings build-ci/maven-settings.xml -fae -DskipITests=true -ntp + if: ${{ matrix.os == 'windows-latest' }} # Archive artifacts to be applied in Publish Reports workflow - name: Archiving test artifacts - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 + if: ${{ matrix.os != 'windows-latest'}} # currently disabled because of https://github.com/actions/upload-artifact/issues/240 with: name: ${{ matrix.os }}-${{ matrix.java }}-test-reports path: | diff --git a/.github/workflows/publish_reports.yml b/.github/workflows/publish_reports.yml index 3dc17e83b..c463f173a 100644 --- a/.github/workflows/publish_reports.yml +++ b/.github/workflows/publish_reports.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download artifacts - uses: actions/github-script@v3.1.0 + uses: actions/github-script@v6 with: script: | var artifacts = await github.actions.listWorkflowRunArtifacts({ diff --git a/tests/org.jboss.tools.openshift.test/src/org/jboss/tools/openshift/test/common/ui/utils/OdoDownloadHelperTest.java b/tests/org.jboss.tools.openshift.test/src/org/jboss/tools/openshift/test/common/ui/utils/OdoDownloadHelperTest.java index bb375a390..fc3f4751d 100644 --- a/tests/org.jboss.tools.openshift.test/src/org/jboss/tools/openshift/test/common/ui/utils/OdoDownloadHelperTest.java +++ b/tests/org.jboss.tools.openshift.test/src/org/jboss/tools/openshift/test/common/ui/utils/OdoDownloadHelperTest.java @@ -15,11 +15,15 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; +import static org.eclipse.core.runtime.Platform.OS_WIN32; + import java.io.File; import java.io.IOException; import java.net.URL; import org.apache.commons.io.FileUtils; +import org.eclipse.core.runtime.Platform; +import org.jboss.tools.common.util.DownloadHelper; import org.jboss.tools.openshift.internal.test.OpenShiftTestActivator; import org.jboss.tools.openshift.internal.ui.utils.DownloadHelper; import org.junit.AfterClass; @@ -49,7 +53,8 @@ public void testThatODOisDownloaded() throws IOException { assertNotNull(url); String cmd = helper.downloadIfRequired("odo", url); assertNotNull(cmd); + String fullProgramExe = OS_WIN32.equals(Platform.getOS())? "odo.exe":"odo"; assertEquals(ODO_CACHE_DIR + File.separatorChar + "cache" + File.separatorChar + "1.0.2" + File.separatorChar - + "odo", cmd); + + fullProgramExe, cmd); } }