From 9bf0a5a3254bf3fdf925380bb5927f12e110337c Mon Sep 17 00:00:00 2001 From: Joshua Fernandes Date: Mon, 24 Feb 2025 14:45:53 +1000 Subject: [PATCH] focus on acceptance and ref only --- .github/actions/testResults/action.yml | 27 +- .github/workflows/ci.yml | 353 ++++++++++++------------- 2 files changed, 185 insertions(+), 195 deletions(-) diff --git a/.github/actions/testResults/action.yml b/.github/actions/testResults/action.yml index 9839c2106b0..cf03b1fa53f 100644 --- a/.github/actions/testResults/action.yml +++ b/.github/actions/testResults/action.yml @@ -27,18 +27,11 @@ runs: done tree build/test-output/ - - name: Gather test artifacats + - name: Collate acceptance Test reports + if: "${{ inputs.suiteName == 'acceptanceTests' }}" shell: bash run: | - FILES=`find . -name test-artifacts` - for FILE in $FILES - do - MODULE=`echo "$FILE" | sed -e 's@./\(.*\)/build/test-artifacts@\1@'` - TARGET="build/test-artifacts/$MODULE" - mkdir -p "$TARGET" - cp -rf ${FILE}/*/* "$TARGET" - done - tree build/test-artifacts/ + cp -r acceptance-tests/build/reports/tests/acceptanceTest build/test-reports/ - name: Gather test reports shell: bash @@ -60,6 +53,20 @@ runs: fi tree build/test-reports/ + - name: Gather extra artifacts for acceptance tests + if: "${{ github.event.inputs.suiteName == 'acceptanceTests' }}" + shell: bash + run: | + FILES=`find . -name test-artifacts` + for FILE in $FILES + do + MODULE=`echo "$FILE" | sed -e 's@./\(.*\)/build/test-artifacts@\1@'` + TARGET="build/test-artifacts/$MODULE" + mkdir -p "$TARGET" + cp -rf ${FILE}/*/* "$TARGET" + done + tree build/test-artifacts/ + - name: Publish Test Results and Reports uses: actions/upload-artifact@v4 if: always() diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06d5e40af64..92ceccb5fb7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,41 +23,77 @@ on: env: JAVA_TOOL_OPTIONS: -Xmx4096m - GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -Dorg.gradle.internal.cmdline.max.length=131072 -Xmx4096m + GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -Dorg.gradle.internal.cmdline.max.length=6291456 -Xmx4096m jobs: - spotless: - runs-on: ubuntu-24.04 - environment: dev - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Prepare - uses: ./.github/actions/prepare - - - name: Spotless - run: | - ./gradlew spotlessCheck + # spotless: + # runs-on: ubuntu-24.04 + # environment: dev + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # submodules: 'recursive' + + # - name: Prepare + # uses: ./.github/actions/prepare + + # - name: Spotless + # run: | + # ./gradlew spotlessCheck - moduleChecks: - runs-on: ubuntu-24.04 - environment: dev - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Prepare - uses: ./.github/actions/prepare - - - name: Check modules - run: | - ./gradlew checkMavenCoordinateCollisions checkModuleDependencies + # moduleChecks: + # runs-on: ubuntu-24.04 + # environment: dev + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # submodules: 'recursive' + + # - name: Prepare + # uses: ./.github/actions/prepare + + # - name: Check modules + # run: | + # ./gradlew checkMavenCoordinateCollisions checkModuleDependencies + + # windowsBuild: + # needs: [spotless, moduleChecks ] + # # 32 cpu, 128G ram + # runs-on: windows-2022 + # environment: dev + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # submodules: 'recursive' + + # - name: Prepare + # uses: ./.github/actions/prepareWindows + + # - name: Build + # shell: powershell + # run: | + # $Env:JAVA_TOOL_OPTIONS = "-Xmx2g" + # $Env:GRADLE_OPTS = "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.vfs.watch=false" + # cmd.exe /c gradlew.bat --no-daemon --parallel --build-cache + + # - name: Build + # shell: powershell + # run: | + # New-Item -ItemType Directory -Force build\test-results + # Get-ChildItem -Recurse | Where-Object {$_.FullName -match "test-results\\.*\\.*.xml"} | Copy-Item -Destination build\test-results\ + + # - name: Publish Windows Test Results and Reports + # uses: actions/upload-artifact@v4 + # if: always() + # with: + # if-no-files-found: ignore + # retention-days: 7 + # path: | + # build/test-results/ assemble: runs-on: ubuntu-24.04 @@ -107,105 +143,105 @@ jobs: !./.git/** retention-days: 1 - unitTests: - needs: assemble - # 32 cpu, 128G ram - runs-on: ubuntu-latest-128 - environment: dev - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Prepare - uses: ./.github/actions/prepare - - - name: Download workspace build - uses: actions/download-artifact@v4 - with: - name: workspace - - - name: Unit Tests - run: | - CLASSNAMES=$(find . -iwholename "**/src/test/java/**/*.java" \ - | sed 's@.*/src/test/java/@@' \ - | sed 's@/@.@g' \ - | sed 's/.\{5\}$//' ) - GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') - echo "Prepared arguments for Gradle: $GRADLE_ARGS" - ./gradlew test $GRADLE_ARGS - - - name: Test results - uses: ./.github/actions/testResults - if: always() - with: - suiteName: 'unitTests' - - integrationTests: - needs: assemble - # 32 cpu, 128G ram - runs-on: ubuntu-latest-128 - environment: dev - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Prepare - uses: ./.github/actions/prepare - - - name: Download workspace build - uses: actions/download-artifact@v4 - with: - name: workspace - - - name: Integration Tests - run: | - ls -la . - ./gradlew integrationTest - - - name: Test results - uses: ./.github/actions/testResults - if: always() - with: - suiteName: 'integrationTests' - - propertyTests: - needs: assemble - # 32 cpu, 128G ram - runs-on: ubuntu-latest-128 - environment: dev - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Prepare - uses: ./.github/actions/prepare - - - name: Download workspace build - uses: actions/download-artifact@v4 - with: - name: workspace - - - name: Acceptance Tests - run: | - CLASSNAMES=$(find . -iwholename "**/src/property-test/java/**/*.java" \ - | sed 's@.*/src/property-test/java/@@' \ - | sed 's@/@.@g' \ - | sed 's/.\{5\}$//' ) - GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') - echo "Prepared arguments for Gradle: $GRADLE_ARGS" - ./gradlew --info propertyTest $GRADLE_ARGS - - - name: Test results - uses: ./.github/actions/testResults - if: always() - with: - suiteName: 'propertyTests' + # unitTests: + # needs: assemble + # # 32 cpu, 128G ram + # runs-on: ubuntu-latest-128 + # environment: dev + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # submodules: 'recursive' + + # - name: Prepare + # uses: ./.github/actions/prepare + + # - name: Download workspace build + # uses: actions/download-artifact@v4 + # with: + # name: workspace + + # - name: Unit Tests + # run: | + # CLASSNAMES=$(find . -iwholename "**/src/test/java/**/*.java" \ + # | sed 's@.*/src/test/java/@@' \ + # | sed 's@/@.@g' \ + # | sed 's/.\{5\}$//' ) + # GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') + # echo "Prepared arguments for Gradle: $GRADLE_ARGS" + # ./gradlew test $GRADLE_ARGS + + # - name: Test results + # uses: ./.github/actions/testResults + # if: always() + # with: + # suiteName: 'unitTests' + + # integrationTests: + # needs: assemble + # # 32 cpu, 128G ram + # runs-on: ubuntu-latest-128 + # environment: dev + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # submodules: 'recursive' + + # - name: Prepare + # uses: ./.github/actions/prepare + + # - name: Download workspace build + # uses: actions/download-artifact@v4 + # with: + # name: workspace + + # - name: Integration Tests + # run: | + # ls -la . + # ./gradlew integrationTest + + # - name: Test results + # uses: ./.github/actions/testResults + # if: always() + # with: + # suiteName: 'integrationTests' + + # propertyTests: + # needs: assemble + # # 32 cpu, 128G ram + # runs-on: ubuntu-latest-128 + # environment: dev + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # submodules: 'recursive' + + # - name: Prepare + # uses: ./.github/actions/prepare + + # - name: Download workspace build + # uses: actions/download-artifact@v4 + # with: + # name: workspace + + # - name: Acceptance Tests + # run: | + # CLASSNAMES=$(find . -iwholename "**/src/property-test/java/**/*.java" \ + # | sed 's@.*/src/property-test/java/@@' \ + # | sed 's@/@.@g' \ + # | sed 's/.\{5\}$//' ) + # GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') + # echo "Prepared arguments for Gradle: $GRADLE_ARGS" + # ./gradlew --info propertyTest $GRADLE_ARGS + + # - name: Test results + # uses: ./.github/actions/testResults + # if: always() + # with: + # suiteName: 'propertyTests' acceptanceTests: needs: assemble @@ -242,16 +278,6 @@ jobs: with: suiteName: 'acceptanceTests' - - name: Publish Acceptance Test reports - uses: actions/upload-artifact@v4 - if: always() - with: - name: acceptanceTests-reports - if-no-files-found: ignore - retention-days: 7 - path: | - acceptance-tests/build/reports/tests/acceptanceTest/ - referenceTests: needs: assemble # 32 cpu, 128G ram @@ -278,21 +304,13 @@ jobs: ./gradlew --no-daemon expandRefTests fi - # Compile separately so that we have the generated test files for splitting across nodes - - name: CompileReferenceTests + - name: Compile Reference Tests run: | ./gradlew --no-daemon --parallel compileReferenceTestJava - name: Reference Tests run: | - CLASSNAMES=$(find . -iwholename "**/src/referenceTest/generated_tests/**/*Test.java" \ - | sed 's@.*/src/referenceTest/generated_tests/@@' \ - | sed 's@/@.@g' \ - | sed 's/.\{5\}$//' ) - GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') - echo "Prepared arguments for Gradle SIZE: ${#GRADLE_ARGS}" - echo "Prepared arguments for Gradle: $GRADLE_ARGS" - ./gradlew -x generateReferenceTestClasses -x processReferenceTestResources -x cleanReferenceTestClasses referenceTest $GRADLE_ARGS + ./gradlew -x generateReferenceTestClasses -x processReferenceTestResources -x cleanReferenceTestClasses referenceTest - name: Test results uses: ./.github/actions/testResults @@ -300,38 +318,3 @@ jobs: with: suiteName: 'referenceTests' - windowsBuild: - needs: [spotless, moduleChecks ] - # 32 cpu, 128G ram - runs-on: windows-2022 - environment: dev - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - submodules: 'recursive' - - - name: Prepare - uses: ./.github/actions/prepareWindows - - - name: Build - shell: powershell - run: | - $Env:JAVA_TOOL_OPTIONS = "-Xmx2g" - $Env:GRADLE_OPTS = "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.vfs.watch=false" - cmd.exe /c gradlew.bat --no-daemon --parallel --build-cache - - - name: Build - shell: powershell - run: | - New-Item -ItemType Directory -Force build\test-results - Get-ChildItem -Recurse | Where-Object {$_.FullName -match "test-results\\.*\\.*.xml"} | Copy-Item -Destination build\test-results\ - - - name: Publish Windows Test Results and Reports - uses: actions/upload-artifact@v4 - if: always() - with: - if-no-files-found: ignore - retention-days: 7 - path: | - build/test-results/ \ No newline at end of file