Skip to content
Merged
Changes from all 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
63 changes: 5 additions & 58 deletions .github/workflows/intermittent-test-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ on:
required: false
submodule:
description: Submodule
default: 'AUTO'
default: 'ozone-integration-test'
required: true
iterations:
description: Number of Iterations per split
Expand Down Expand Up @@ -65,7 +65,6 @@ env:
RATIS_REPO: ${{ github.event.inputs.ratis-repo }}
RATIS_VERSION: ${{ github.event.inputs.ratis-ref }}
JAVA_VERSION: ${{ github.event.inputs.java-version }}
OUTPUT_DIR: flaky-test-check-ci-results
# 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
Expand Down Expand Up @@ -95,54 +94,11 @@ jobs:
with:
repo: ${{ github.event.inputs.ratis-repo || format('{0}/ratis', github.repository_owner) }}
ref: ${{ github.event.inputs.ratis-ref }}
find-tests:
if: ${{ always() && github.event.inputs.submodule == 'AUTO' }}
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 --text -e 'surefire:${{ env.SUREFIRE_VERSION }}:test' -e 'Running org.apache' ${{ env.OUTPUT_DIR }}/output.log | grep --text -B1 'Running org.apache'
modules=$(grep --text -e 'surefire:${{ env.SUREFIRE_VERSION }}:test' -e 'Running org.apache' ${{ env.OUTPUT_DIR }}/output.log | grep --text -B1 'Running org.apache' \
| grep --text 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:
Expand Down Expand Up @@ -182,11 +138,7 @@ jobs:
args="$args -Dgrpc.protobuf-compile.version=${{ needs.ratis.outputs.protobuf-version }}"
fi

if [[ "${{ github.event.inputs.submodule }}" != "AUTO" ]]; then
args="$args -am -pl :${{ github.event.inputs.submodule }}"
elif [[ -n "${{ needs.find-tests.outputs.modules }}" ]]; then
args="$args -am -pl ${{ needs.find-tests.outputs.modules }}"
fi
args="$args -am -pl :${{ github.event.inputs.submodule }}"

hadoop-ozone/dev-support/checks/build.sh $args
- name: Store Maven repo for tests
Expand All @@ -202,7 +154,6 @@ jobs:
- prepare-job
- ratis
- build
- find-tests
name: Run-Split
runs-on: ubuntu-24.04
strategy:
Expand Down Expand Up @@ -257,11 +208,7 @@ jobs:
args="$args -Dgrpc.protobuf-compile.version=${{ needs.ratis.outputs.protobuf-version }}"
fi

if [[ "${{ github.event.inputs.submodule }}" != "AUTO" ]]; then
args="$args -pl :${{ github.event.inputs.submodule }}"
elif [[ -n "${{ needs.find-tests.outputs.modules }}" ]]; then
args="$args -pl ${{ needs.find-tests.outputs.modules }}"
fi
args="$args -pl :${{ github.event.inputs.submodule }}"

if [ "$TEST_METHOD" = "ALL" ]; then
echo "Running all tests from $TEST_CLASS"
Expand All @@ -276,14 +223,14 @@ jobs:
env:
DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }}
- name: Summary of failures
run: hadoop-ozone/dev-support/checks/_summary.sh ${{ env.OUTPUT_DIR }}/summary.txt
run: hadoop-ozone/dev-support/checks/_summary.sh target/unit/summary.txt
if: ${{ !cancelled() }}
- name: Archive build results
uses: actions/upload-artifact@v4
if: ${{ failure() }}
with:
name: result-${{ github.run_number }}-${{ github.run_id }}-split-${{ matrix.split }}
path: ${{ env.OUTPUT_DIR }}
path: target/unit
count-failures:
if: ${{ failure() }}
needs: run-test
Expand Down