From df465a09607e71314ab6fc1ed0c3eddf2f54debc Mon Sep 17 00:00:00 2001 From: Joshua Fernandes Date: Mon, 24 Feb 2025 08:54:14 +1000 Subject: [PATCH] test windows build --- .github/workflows/ci.yml | 107 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 401cf0f2908..9374a07fa0a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,8 +17,42 @@ env: GRADLE_OPTS: -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -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 + + 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: Spotless + run: | + ./gradlew heckMavenCoordinateCollisions checkModuleDependencies + assemble: - # 4 cpu, 16G ram runs-on: ubuntu-24.04 environment: dev steps: @@ -166,3 +200,74 @@ jobs: GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') echo "Prepared arguments for Gradle: $GRADLE_ARGS" ./gradlew acceptanceTest $GRADLE_ARGS + + referenceTests: + 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: Fetch Reference Tests + run: | + if [ ! -d "eth-reference-tests/src/referenceTest/resources/consensus-spec-tests/tests" ] + then + ./gradlew --no-daemon expandRefTests + fi + + # Compile separately so that we have the generated test files for splitting across nodes + - name: CompileReferenceTests + 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: $GRADLE_ARGS" + ./gradlew -x generateReferenceTestClasses -x processReferenceTestResources -x cleanReferenceTestClasses referenceTest $GRADLE_ARGS + + 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/prepare + + - 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 + + # - run: + # name: "Gather test artifacts" + # when: "always" + # command: | + # New-Item -ItemType Directory -Force build\test-results + # Get-ChildItem -Recurse | Where-Object {$_.FullName -match "test-results\\.*\\.*.xml"} | Copy-Item -Destination build\test-results\ + # - store_test_results: + # path: build/test-results