diff --git a/.github/workflows/multi-node-test-workflow.yml b/.github/workflows/multi-node-test-workflow.yml index fe5f0691f..78984c784 100644 --- a/.github/workflows/multi-node-test-workflow.yml +++ b/.github/workflows/multi-node-test-workflow.yml @@ -10,6 +10,17 @@ on: jobs: 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 f54ad9b0b..12d435d91 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) {