This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 65a9d6ce31 HDDS-12587. Detect test class module in flaky-test-check
(#8162)
65a9d6ce31 is described below
commit 65a9d6ce318c97d4fe417bf709a7f1192a6a0a3e
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Fri Mar 28 10:59:38 2025 +0100
HDDS-12587. Detect test class module in flaky-test-check (#8162)
Co-authored-by: Peter Lee <[email protected]>
---
.github/workflows/intermittent-test-check.yml | 55 +++++++++++++++++++++++++++
1 file changed, 55 insertions(+)
diff --git a/.github/workflows/intermittent-test-check.yml
b/.github/workflows/intermittent-test-check.yml
index 1fe422ca04..ee12f92ed8 100644
--- a/.github/workflows/intermittent-test-check.yml
+++ b/.github/workflows/intermittent-test-check.yml
@@ -61,6 +61,9 @@ env:
RATIS_REPO: ${{ github.event.inputs.ratis-repo }}
RATIS_VERSION: ${{ github.event.inputs.ratis-ref }}
JAVA_VERSION: ${{ github.event.inputs.java-version }}
+ # Surefire 3.0.0-M4 is used because newer versions do not reliably kill the
fork on timeout
+ # SUREFIRE-1722, SUREFIRE-1815
+ SUREFIRE_VERSION: 3.0.0-M4
run-name: ${{ github.event_name == 'workflow_dispatch' &&
format('{0}#{1}[{2}]-{3}x{4}-java{5}', inputs.test-class, inputs.test-name,
inputs.ref, inputs.splits, inputs.iterations, inputs.java-version) || '' }}
jobs:
prepare-job:
@@ -87,11 +90,54 @@ jobs:
with:
repo: ${{ github.event.inputs.ratis-repo || format('{0}/ratis',
github.repository_owner) }}
ref: ${{ github.event.inputs.ratis-ref }}
+ find-tests:
+ if: ${{ always() }}
+ needs:
+ - prepare-job
+ runs-on: ubuntu-24.04
+ outputs:
+ modules: ${{ steps.modules.outputs.modules }}
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: ${{ github.event.inputs.ref }}
+ - name: Cache for maven dependencies
+ uses: actions/cache/restore@v4
+ with:
+ path: |
+ ~/.m2/repository/*/*/*
+ !~/.m2/repository/org/apache/ozone
+ key: maven-repo-${{ hashFiles('**/pom.xml') }}
+ restore-keys: |
+ maven-repo-
+ - name: Setup java
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'temurin'
+ java-version: ${{ github.event.inputs.java-version }}
+ - name: Find tests
+ run: |
+ # find tests to be run in splits by running them with very short
timeout
+ hadoop-ozone/dev-support/checks/junit.sh
-DexcludedGroups="native|slow|unhealthy" -DskipShade \
+ -Dtest="$TEST_CLASS,Abstract*Test*\$*" \
+ -Dsurefire.fork.timeout=1 -Dmaven-surefire-plugin.version=${{
env.SUREFIRE_VERSION }} \
+ || true # ignore errors
+ env:
+ ITERATIONS: 1
+ - name: Find modules
+ id: modules
+ run: |
+ grep -e 'surefire:${{ env.SUREFIRE_VERSION }}:test' -e 'Running
org.apache' target/unit/output.log | grep -B1 'Running org.apache'
+ modules=$(grep -e 'surefire:${{ env.SUREFIRE_VERSION }}:test' -e
'Running org.apache' target/unit/output.log | grep -B1 'Running org.apache' \
+ | grep surefire | cut -f2 -d'@' | awk '{ print $1 }' | sed
's/^/:/' | xargs | sed -e 's/ /,/g')
+ echo "modules=$modules" >> $GITHUB_OUTPUT
+ if: ${{ !cancelled() }}
build:
if: ${{ always() }}
needs:
- prepare-job
- ratis
+ - find-tests
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
@@ -129,6 +175,10 @@ jobs:
args="$args -Dgrpc.protobuf-compile.version=${{
needs.ratis.outputs.protobuf-version }}"
fi
+ if [[ -n "${{ needs.find-tests.outputs.modules }}" ]]; then
+ args="$args -am -pl ${{ needs.find-tests.outputs.modules }}"
+ fi
+
hadoop-ozone/dev-support/checks/build.sh $args
- name: Store Maven repo for tests
uses: actions/upload-artifact@v4
@@ -143,6 +193,7 @@ jobs:
- prepare-job
- ratis
- build
+ - find-tests
name: Run-Split
runs-on: ubuntu-24.04
strategy:
@@ -197,6 +248,10 @@ jobs:
args="$args -Dgrpc.protobuf-compile.version=${{
needs.ratis.outputs.protobuf-version }}"
fi
+ if [[ -n "${{ needs.find-tests.outputs.modules }}" ]]; then
+ args="$args -pl ${{ needs.find-tests.outputs.modules }}"
+ fi
+
if [ "$TEST_METHOD" = "ALL" ]; then
echo "Running all tests from $TEST_CLASS"
set -x
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]