Skip to content
Open
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
70 changes: 0 additions & 70 deletions .github/workflows/BesuContainerVerify.sh

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
name: update-test-reports
name: acceptance-tests-timing-reports-update

# Runs on every merge to main. Grabs the per-runner acceptance test XML results from the just-merged
# PR's latest successful CI run and consolidates them into a single 'acceptance-tests-timing-reports'
# artifact on main.
# That artifact is the timing baseline that acceptance-tests.yml downloads on every PR to split
# tests across parallel runners by historical duration. The data is always one merge behind — a PR's
# own results only feed the *next* PR's split.

on:
push:
Expand All @@ -18,17 +25,17 @@ jobs:
- name: Get acceptance test reports from latest merged PR
uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d
with:
workflow: acceptance-tests.yml
workflow: ci.yml
workflow_conclusion: success
pr: ${{ env.LATEST_MERGED_PR_NUMBER }}
name_is_regexp: true
name: 'acceptance-node-\d+-test-results'
path: acceptance-test-results
path: acceptance-tests-timing-reports
if_no_artifact_found: fail
env:
LATEST_MERGED_PR_NUMBER: ${{ steps.latest_merged_pr_number.outputs.PULL_REQUEST_NUMBER }}
- name: Upload acceptance test results
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: acceptance-test-results
path: 'acceptance-test-results/**/TEST-*.xml'
name: acceptance-tests-timing-reports
path: 'acceptance-tests-timing-reports/**/TEST-*.xml'
49 changes: 29 additions & 20 deletions .github/workflows/acceptance-tests.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,23 @@
name: acceptance-tests
on:
workflow_dispatch:
merge_group:
pull_request:
branches:
- main
- release-*
- verkle
- performance
- '*-devnet-*'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
on:
workflow_call:
inputs:
assemble_output_run_id:
type: string
required: true

env:
GRADLE_OPTS: "-Xmx1g"
total-runners: 14

jobs:
acceptanceTestEthereum:
acceptanceTests:
runs-on: ubuntu-latest
timeout-minutes: 30
name: "Acceptance Runner"
permissions:
contents: read
statuses: write
checks: write
strategy:
Expand All @@ -35,11 +29,22 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ github.event.pull_request.head.sha || github.ref }}
- name: Download assemble-output
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: assemble-output
run-id: ${{ inputs.assemble_output_run_id }}
github-token: ${{ github.token }}
path: ${{ github.workspace }}
- name: Set up Java
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: temurin
java-version: 25
- name: Setup Gradle
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
with:
cache-disabled: true
- name: Install required packages
run: sudo apt-get install -y xmlstarlet
- name: setup gradle
Expand All @@ -50,17 +55,20 @@ jobs:
run: ./gradlew acceptanceTest --test-dry-run -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
- name: Extract current test list
run: mkdir tmp; find . -type f -name TEST-*.xml | xargs -I{} bash -c "xmlstarlet sel -t -v '/testsuite/testcase[1]/@classname' '{}'; echo ' acceptanceTest'" | tee tmp/currentTests.list
# Downloads the timing baseline produced by update-acceptance-tests-timing-reports.yml on the last merge to main.
# `splitTestsByTime.sh` uses the per-test durations in these XMLs to distribute tests across parallel runners by historical wall-clock time rather than a naive split.
# If the artifact is missing # (e.g. first run), splitting falls back to round-robin for all tests.
- name: Get acceptance test reports
uses: dawidd6/action-download-artifact@e7466d1a7587ed14867642c2ca74b5bcc1e19a2d
continue-on-error: true
with:
branch: main
workflow: update-test-reports.yml
name: acceptance-test-results
workflow: acceptance-tests-timing-reports-update.yml
name: acceptance-tests-timing-reports
path: tmp/junit-xml-reports-downloaded
if_no_artifact_found: ignore
- name: Split tests
run: .github/workflows/splitTestsByTime.sh tmp/junit-xml-reports-downloaded "tmp/junit-xml-reports-downloaded/acceptance-node-.*-test-results" "TEST-" ${{env.total-runners}} ${{ matrix.runner_index }} > testList.txt
run: .github/scripts/splitTestsByTime.sh tmp/junit-xml-reports-downloaded "tmp/junit-xml-reports-downloaded/acceptance-node-.*-test-results" "TEST-" ${{env.total-runners}} ${{ matrix.runner_index }} > testList.txt
- name: format gradle args
# we do not need the module task here
run: cat testList.txt | cut -f 2- -d ' ' | tee gradleArgs.txt
Expand Down Expand Up @@ -96,10 +104,11 @@ jobs:
with:
name: acceptance-node-${{matrix.runner_index}}-test-html-reports
path: 'acceptance-tests/tests/build/reports/tests/**'
accepttests-passed:
name: "accepttests-passed"

acceptanceTestsPassed:
name: acceptanceTestsPassed
runs-on: ubuntu-latest
needs: [ acceptanceTestEthereum ]
needs: [ acceptanceTests ]
permissions:
checks: write
statuses: write
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/bft-soak-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 180
permissions:
contents: read
statuses: write
checks: write
steps:
Expand All @@ -50,7 +51,7 @@ jobs:
with:
distribution: temurin
java-version: 25
- name: setup gradle
- name: Setup Gradle
uses: gradle/actions/setup-gradle@39e147cb9de83bb9910b8ef8bd7fff0ee20fcd6f # v6.0.1
with:
cache-disabled: true
Expand Down
Loading
Loading