Skip to content

Commit b6d2a41

Browse files
authored
Merge pull request #21 from jflo/gha_checks
versions
2 parents f1666da + 2181bf9 commit b6d2a41

File tree

6 files changed

+51
-40
lines changed

6 files changed

+51
-40
lines changed

.circleci/config.yml

Whitespace-only changes.

.github/workflows/acceptance-tests.yml

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@ name: acceptance-tests
22
on:
33
pull_request_review:
44
types: [ submitted ]
5+
workflow_dispatch:
6+
57

68

79
env:
810
GRADLE_OPTS: "-Xmx6g -Dorg.gradle.daemon=false"
9-
total-runners: 6
11+
total-runners: 32
1012

1113
jobs:
1214
runner-indexes:
13-
runs-on:
14-
group: "Besu Large Runners"
15+
runs-on: ubuntu-22.04
1516
name: Generate runner indexes
1617
outputs:
1718
json: ${{ steps.generate-index-list.outputs.json }}
@@ -23,12 +24,11 @@ jobs:
2324
INDEX_JSON=$(jq --null-input --compact-output '. |= [inputs]' <<< ${INDEX_LIST})
2425
echo "::set-output name=json::${INDEX_JSON}"
2526
acceptanceTestEthereum:
26-
runs-on:
27-
group: "Besu Large Runners"
27+
runs-on: ubuntu-22.04
2828
name: "Acceptance Runner #${{ matrix.runner-index }}: Run acceptance tests in parallel"
2929
needs:
3030
- runner-indexes
31-
if: ${{ github.actor != 'dependabot[bot]'}}
31+
if: ${{ github.actor != 'dependabot[bot]' && github.event.review.state == 'approved'}}
3232
strategy:
3333
fail-fast: false
3434
matrix:
@@ -41,13 +41,8 @@ jobs:
4141
with:
4242
distribution: adopt
4343
java-version: 17
44-
cache: gradle
4544
- name: Compile
4645
uses: gradle/gradle-build-action@v2
47-
with:
48-
gradle-home-cache-cleanup: true
49-
cache-read-only: false
50-
arguments: compileJava compileTestJava -Dorg.gradle.parallel=true
5146
- name: Split tests
5247
id: split-tests
5348
uses: chaosaffe/split-tests@v1-alpha.1
@@ -62,10 +57,8 @@ jobs:
6257
#regex means: first truncate file paths to align with package name, then swap path delimiter with package delimiter,
6358
#then drop file extension, then insert --tests option between each.
6459
run: cat testList.txt | sed -e 's@acceptance-tests/tests/src/test/java/@@g' -e 's@/@.@g' -e 's/\.java//g' -e 's/\ /\ --tests\ /g' >> gradleArgs.txt
65-
- name: list keystores
66-
run: find . -name "*.jks"
6760
- name: run acceptance tests
68-
run: ./gradlew acceptanceTest --tests `cat gradleArgs.txt`
61+
run: ./gradlew acceptanceTest --tests `cat gradleArgs.txt` -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
6962
- name: cleanup tempfiles
7063
run: rm testList.txt gradleArgs.txt
7164
- name: Publish Test Report

.github/workflows/callee.yml

Lines changed: 0 additions & 13 deletions
This file was deleted.

.github/workflows/caller.yml

Lines changed: 0 additions & 9 deletions
This file was deleted.

.github/workflows/pre-review.yml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: pre-review
22

33
on:
44
pull_request:
5+
workflow_dispatch:
56

67
env:
78
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
@@ -51,13 +52,25 @@ jobs:
5152
java-version: 17
5253
- name: Setup Gradle
5354
uses: gradle/gradle-build-action@v2.10.0
54-
- name: Run Build
55+
- name: Gradle Compile
5556
run: ./gradlew build -x test -x spotlessCheck -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
5657
unitTests:
57-
runs-on: besu-research-ubuntu-8
58+
env:
59+
GRADLEW_UNIT_TEST_ARGS: ${{matrix.gradle_args}}
60+
runs-on: ubuntu-22.04
5861
needs: [ compile ]
5962
permissions:
6063
checks: write
64+
strategy:
65+
fail-fast: false
66+
matrix:
67+
gradle_args:
68+
- "test -x besu:test -x consensus:test -x crypto:test -x ethereum:eth:test -x ethereum:api:test -x ethereum:core:test"
69+
- "besu:test consensus:test crypto:test"
70+
- "ethereum:api:testBonsai"
71+
- "ethereum:api:testForest"
72+
- "ethereum:api:testRemainder"
73+
- "ethereum:core:test"
6174
steps:
6275
- name: Checkout Repo
6376
uses: actions/checkout@v3
@@ -67,8 +80,9 @@ jobs:
6780
distribution: adopt
6881
java-version: 17
6982
- name: Setup Gradle
70-
uses: gradle/gradle-build-action@v2
71-
run: ./gradlew build -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
83+
uses: gradle/gradle-build-action@v2.10.0
84+
- name: run unit tests
85+
run: ./gradlew $GRADLEW_UNIT_TEST_ARGS -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
7286
- name: Upload Test Report
7387
uses: actions/upload-artifact@v3
7488
if: always() # always run even if the previous step fails

ethereum/api/build.gradle

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,29 @@ tasks.register('generateTestBlockchain') {
168168
}
169169
}
170170
test.dependsOn(generateTestBlockchain)
171+
/*
172+
Utility tasks used to separate out long running suites of tests so they can be parallelized in CI
173+
*/
174+
tasks.register("testBonsai", Test) {
175+
useJUnitPlatform()
176+
filter {
177+
includeTestsMatching("org.hyperledger.besu.ethereum.api.jsonrpc.bonsai.*")
178+
}
179+
dependsOn(generateTestBlockchain)
180+
}
181+
182+
tasks.register("testForest", Test) {
183+
useJUnitPlatform()
184+
filter {
185+
includeTestsMatching("org.hyperledger.besu.ethereum.api.jsonrpc.forest.*")
186+
}
187+
dependsOn(generateTestBlockchain)
188+
}
189+
190+
tasks.register("testRemainder", Test) {
191+
useJUnitPlatform()
192+
filter {
193+
excludeTestsMatching("org.hyperledger.besu.ethereum.api.jsonrpc.bonsai.*")
194+
excludeTestsMatching("org.hyperledger.besu.ethereum.api.jsonrpc.forest.*")
195+
}
196+
}

0 commit comments

Comments
 (0)