test publish workflow #30
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
## RUNNERS | |
# ubuntu-24.04 = 4cpu, 16GB | |
# windows-2022 = 4 cpu, 16GB | |
# ubuntu-24.04-arm = 4cpu, 16GB | |
# macos-13 = 4cpu, 14GB | |
# macos-15 = 3cpu(M1), 7GB | |
on: | |
pull_request: | |
push: | |
branches: [ gha ] | |
workflow_call: | |
outputs: | |
workflow_run_id: | |
description: "the run id of the workflow" | |
value: ${{ jobs.build.outputs.workflow_run_id }} | |
workflow_dispatch: | |
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=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 | |
# 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 | |
environment: dev | |
outputs: | |
workflow_run_id: ${{ steps.workflowdetails.outputs.id }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: get workflow_details | |
id: workflowdetails | |
shell: bash | |
run: | | |
echo "id=${{ github.run_id }}" >> $GITHUB_OUTPUT | |
echo "build_date=$(date --rfc-3339=date)" >> $GITHUB_OUTPUT | |
- name: Prepare | |
uses: ./.github/actions/prepare | |
# TODO: remove me later | |
# - name: ssh | |
# uses: ryanchapman/gha-ssh@v1 | |
# timeout-minutes: 10 | |
# with: | |
# authorized_github_users: 'joshuafernandes' | |
- name: Assemble | |
run: | | |
./gradlew --no-daemon --parallel clean compileJava compileTestJava compileJmhJava compileIntegrationTestJava compileAcceptanceTestJava compilePropertyTestJava assemble | |
# TODO: check why this is done | |
# - run: | |
# name: Prep Artifacts | |
# command: | | |
# mkdir /tmp/teku-distributions | |
# cp build/distributions/*.tar.gz /tmp/teku-distributions/ | |
- name: Upload workspace build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: workspace | |
path: | | |
./ | |
!./.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' | |
# acceptanceTests: | |
# needs: assemble | |
# 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/acceptance-test/java/**/*.java" \ | |
# | sed 's@.*/src/acceptance-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 acceptanceTest $GRADLE_ARGS | |
# - name: Test results | |
# uses: ./.github/actions/testResults | |
# if: always() | |
# with: | |
# suiteName: 'acceptanceTests' | |
# referenceTests: | |
# needs: assemble | |
# 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 | |
# - name: Compile Reference Tests | |
# run: | | |
# ./gradlew --no-daemon --parallel compileReferenceTestJava | |
# - name: Reference Tests | |
# run: | | |
# ./gradlew -x generateReferenceTestClasses -x processReferenceTestResources -x cleanReferenceTestClasses referenceTest | |
# - name: Test results | |
# uses: ./.github/actions/testResults | |
# if: always() | |
# with: | |
# suiteName: 'referenceTests' | |