diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml index db11faf9..582c2cab 100644 --- a/.github/workflows/ci-build.yml +++ b/.github/workflows/ci-build.yml @@ -1,17 +1,16 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. # This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle name: Java CI with Gradle +env: + CLIENT_JDK_VERSION: '17' + CLIENT_JDK_DISTRIBUTION: 'temurin' + on: push: branches: [ "main" ] - pull_request: - branches: [ "main" ] + workflow_dispatch: {} jobs: build: @@ -28,8 +27,8 @@ jobs: - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: ${{ clientJdkVersion }} - distribution: ${{ clientJavaDistribution }} + java-version: $CLIENT_JDK_VERSION + distribution: $CLIENT_JDK_DISTRIBUTION # Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies. # See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md @@ -39,6 +38,31 @@ jobs: - name: Build with Gradle Wrapper run: ./gradlew build + higherLevelTests: + strategy: # Create multiple job runs, each job on a different OS + matrix: + os: [ ubuntu-latest, macos-latest, windows-latest ] + runs-on: ${{ matrix.os }} + permissions: + contents: read + + steps: + - uses: actions/checkout@v4 + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: $CLIENT_JDK_VERSION + distribution: $CLIENT_JDK_DISTRIBUTION + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Run Integration Tests + run: ./gradlew integrationTests + + - name: Run UI Tests + run: ./gradlew uiTests + # NOTE: The Gradle Wrapper is the default and recommended way to run Gradle (https://docs.gradle.org/current/userguide/gradle_wrapper.html). # If your project does not have the Gradle Wrapper configured, you can use the following configuration to run Gradle with a specified version. # @@ -58,11 +82,11 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up JDK ${{ clientJdkVersion }} + - name: Set up JDK $CLIENT_JDK_VERSION uses: actions/setup-java@v4 with: - java-version: ${{ clientJdkVersion }} - distribution: ${{ clientJavaDistribution }} + java-version: $CLIENT_JDK_VERSION + distribution: $CLIENT_JDK_DISTRIBUTION # Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies. # See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md diff --git a/.github/workflows/gated-build.yml b/.github/workflows/gated-build.yml index 85f4c6eb..9cd8ed3c 100644 --- a/.github/workflows/gated-build.yml +++ b/.github/workflows/gated-build.yml @@ -1,5 +1,9 @@ name: Java Gated Build with Gradle +env: + clientJdkVersion: '17' + clientJdkDistrib: 'temurin' + on: push: branches: @@ -22,12 +26,12 @@ jobs: - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: ${{ clientJdkVersion }} - distribution: ${{ clientJavaDistribution }} + java-version: ${{ env.clientJdkVersion }} + distribution: ${{ env.clientJdkDistrib }} cache: 'gradle' - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Run Gradle unit tests - run: ./gradlew test + run: ./gradlew unitTests diff --git a/.gitignore b/.gitignore index 76d4703b..14feb299 100644 --- a/.gitignore +++ b/.gitignore @@ -53,10 +53,14 @@ www-test/ .gwt-tmp/ ## IntelliJ, Android Studio: -.idea/ +# Ignore all files and subdirectories inside .idea folder +.idea/*/* +.idea/*.xml *.ipr *.iws *.iml +# Except inspectionProfiles, which should be included for a synchronized code style +!.idea/inspectionProfiles/* ## Eclipse: .classpath diff --git a/.idea/inspectionProfiles/Full_Project_Safe.xml b/.idea/inspectionProfiles/Full_Project_Safe.xml new file mode 100644 index 00000000..eed2ebd3 --- /dev/null +++ b/.idea/inspectionProfiles/Full_Project_Safe.xml @@ -0,0 +1,23 @@ + + + Limited by GWT (Java 17, but Java 8 syntax). Prevents GWT errors. + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/GWT_Limited__Mid_Era_Java_Syntax_.xml b/.idea/inspectionProfiles/GWT_Limited__Mid_Era_Java_Syntax_.xml new file mode 100644 index 00000000..d6a29ad0 --- /dev/null +++ b/.idea/inspectionProfiles/GWT_Limited__Mid_Era_Java_Syntax_.xml @@ -0,0 +1,24 @@ + + + Limited by GWT (Java 17, but Java 8 syntax). Prevents GWT errors. + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/No_Limits_Java.xml b/.idea/inspectionProfiles/No_Limits_Java.xml new file mode 100644 index 00000000..6cb4fa8a --- /dev/null +++ b/.idea/inspectionProfiles/No_Limits_Java.xml @@ -0,0 +1,830 @@ + + + Modern Java syntax - uses latest styles and syntactic sugar + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 00000000..e105383c --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.run/Run Server.run.xml b/.run/Run Server.run.xml index 77f74945..b029a8d5 100644 --- a/.run/Run Server.run.xml +++ b/.run/Run Server.run.xml @@ -1,6 +1,6 @@ -