From b660dc0ffea7dcb4077833e763151783b625cee7 Mon Sep 17 00:00:00 2001 From: bowenlan-amzn Date: Tue, 3 Oct 2023 10:54:26 -0700 Subject: [PATCH] backport #966 Signed-off-by: bowenlan-amzn --- .github/workflows/multi-node-test-workflow.yml | 15 +++++++++++++-- .github/workflows/test-and-build-workflow.yml | 8 +++++++- build.gradle | 15 +++++++++++++++ 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/.github/workflows/multi-node-test-workflow.yml b/.github/workflows/multi-node-test-workflow.yml index aaa37dc98..7e523f532 100644 --- a/.github/workflows/multi-node-test-workflow.yml +++ b/.github/workflows/multi-node-test-workflow.yml @@ -9,7 +9,18 @@ on: - "*" jobs: - test: + multi-node-test: + env: + TEST_FILTER: ${{ matrix.test_filter }} + strategy: + fail-fast: false + matrix: + feature: [ism, non-ism] + include: + - feature: ism + test_filter: -PincludeTests="org.opensearch.indexmanagement.indexstatemanagement*" + - feature: non-ism + test_filter: -PexcludeTests="org.opensearch.indexmanagement.indexstatemanagement*" # This job runs on Linux runs-on: ubuntu-latest steps: @@ -22,7 +33,7 @@ jobs: - name: Checkout Branch uses: actions/checkout@v2 - name: Run integration tests with multi node config - run: ./gradlew integTest -PnumNodes=3 + run: ./gradlew integTest -PnumNodes=3 ${{ env.TEST_FILTER }} - name: Upload failed logs uses: actions/upload-artifact@v2 if: failure() diff --git a/.github/workflows/test-and-build-workflow.yml b/.github/workflows/test-and-build-workflow.yml index d324148e8..4fe8da385 100644 --- a/.github/workflows/test-and-build-workflow.yml +++ b/.github/workflows/test-and-build-workflow.yml @@ -12,6 +12,7 @@ jobs: env: BUILD_ARGS: ${{ matrix.os_build_args }} WORKING_DIR: ${{ matrix.working_directory }}. + TEST_FILTER: ${{ matrix.test_filter }} strategy: # This setting says that all jobs should finish, even if one fails fail-fast: false @@ -19,6 +20,7 @@ jobs: matrix: java: [11, 17] os: [ubuntu-latest, windows-latest, macos-latest] + feature: [ism, non-ism] include: - os: windows-latest os_build_args: -x integTest -x jacocoTestReport @@ -26,6 +28,10 @@ jobs: os_java_options: -Xmx4096M - os: macos-latest os_build_args: -x integTest -x jacocoTestReport + - feature: ism + test_filter: -PincludeTests="org.opensearch.indexmanagement.indexstatemanagement*" + - feature: non-ism + test_filter: -PexcludeTests="org.opensearch.indexmanagement.indexstatemanagement*" runs-on: ${{ matrix.os }} steps: # This step uses the setup-java Github action: https://github.com/actions/setup-java @@ -43,7 +49,7 @@ jobs: run: subst 'X:' . - name: Build with Gradle working-directory: ${{ env.WORKING_DIR }} - run: ./gradlew build ${{ env.BUILD_ARGS }} + run: ./gradlew build ${{ env.BUILD_ARGS }} ${{ env.TEST_FILTER }} env: _JAVA_OPTIONS: ${{ matrix.os_java_options }} - name: Upload failed logs diff --git a/build.gradle b/build.gradle index 997205b95..742774a3e 100644 --- a/build.gradle +++ b/build.gradle @@ -574,6 +574,21 @@ integTest { if (usingRemoteCluster) { exclude 'org/opensearch/indexmanagement/controlcenter/notification/filter/NotificationActionListenerIT.class' } + + if (project.hasProperty('includeTests')) { + String includeTests = project.property('includeTests') + println("Include tests ${includeTests}") + filter { + includeTestsMatching includeTests + } + } + if (project.hasProperty('excludeTests')) { + String excludeTests = project.property('excludeTests') + println("Exclude tests ${excludeTests}") + filter { + excludeTestsMatching excludeTests + } + } } task integTestRemote(type: RestIntegTestTask) {