Skip to content

test publish workflow #30

test publish workflow

test publish workflow #30

Workflow file for this run

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'