diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8a442f2ee..6300c70f89 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,13 +111,26 @@ jobs: - name: Checkout security uses: actions/checkout@v4 - - name: Build and Test + - name: Run Integration Tests uses: gradle/gradle-build-action@v3 with: cache-disabled: true arguments: | integrationTest -Dbuild.snapshot=false + - name: Publish SPI to Local Maven + uses: gradle/gradle-build-action@v3 + with: + cache-disabled: true + arguments: :opensearch-resource-sharing-spi:publishToMavenLocal -Dbuild.snapshot=false + + - name: Run SampleResourcePlugin Integration Tests + uses: gradle/gradle-build-action@v3 + with: + cache-disabled: true + arguments: | + :opensearch-sample-resource-plugin:integrationTest -Dbuild.snapshot=false + - uses: actions/upload-artifact@v4 if: always() with: @@ -125,7 +138,6 @@ jobs: path: | ./build/reports/ - resource-tests: env: CI_ENVIRONMENT: resource-test @@ -146,7 +158,7 @@ jobs: - name: Checkout security uses: actions/checkout@v4 - - name: Build and Test + - name: Run Resource Tests uses: gradle/gradle-build-action@v3 with: cache-disabled: true @@ -211,72 +223,67 @@ jobs: - run: ./gradlew clean assemble - uses: github/codeql-action/analyze@v3 - build-version-qualifier: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 21 - - run: | - security_plugin_version=$(./gradlew properties -q | grep -E '^version:' | awk '{print $2}') - security_plugin_version_no_snapshot=$(echo $security_plugin_version | sed 's/-SNAPSHOT//g') - security_plugin_version_only_number=$(echo $security_plugin_version_no_snapshot | cut -d- -f1) - test_qualifier=alpha2 - - echo "SECURITY_PLUGIN_VERSION=$security_plugin_version" >> $GITHUB_ENV - echo "SECURITY_PLUGIN_VERSION_NO_SNAPSHOT=$security_plugin_version_no_snapshot" >> $GITHUB_ENV - echo "SECURITY_PLUGIN_VERSION_ONLY_NUMBER=$security_plugin_version_only_number" >> $GITHUB_ENV - echo "TEST_QUALIFIER=$test_qualifier" >> $GITHUB_ENV - - - run: | - echo ${{ env.SECURITY_PLUGIN_VERSION }} - echo ${{ env.SECURITY_PLUGIN_VERSION_NO_SNAPSHOT }} - echo ${{ env.SECURITY_PLUGIN_VERSION_ONLY_NUMBER }} - echo ${{ env.TEST_QUALIFIER }} - - publish-spi: - name: Publish SPI + build-artifact-names: runs-on: ubuntu-latest steps: - - name: Set up JDK + - name: Setup Environment + uses: actions/checkout@v4 + + - name: Configure Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 21 - - name: Checkout SPI - uses: actions/checkout@v4 - - - run: ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal - - - run: ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal -Dbuild.snapshot=false - - - run: ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal -Dbuild.snapshot=false -Dbuild.version_qualifier=${{ env.TEST_QUALIFIER }} - - - run: ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal -Dbuild.version_qualifier=${{ env.TEST_QUALIFIER }} - - build-artifact-names: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-java@v4 - with: - distribution: temurin # Temurin is a distribution of adoptium - java-version: 21 - - - run: ./gradlew clean assemble && test -s ./build/distributions/opensearch-security-${{ env.SECURITY_PLUGIN_VERSION }}.zip && test -s ./sample-resource-plugin/build/distributions/opensearch-sample-resource-plugin-${{ env.SECURITY_PLUGIN_VERSION }}.zip - - - run: ./gradlew clean assemble -Dbuild.snapshot=false && test -s ./build/distributions/opensearch-security-${{ env.SECURITY_PLUGIN_VERSION_NO_SNAPSHOT }}.zip && test -s ./sample-resource-plugin/build/distributions/opensearch-sample-resource-plugin-${{ env.SECURITY_PLUGIN_VERSION_NO_SNAPSHOT }}.zip - - - run: ./gradlew clean assemble -Dbuild.snapshot=false -Dbuild.version_qualifier=${{ env.TEST_QUALIFIER }} && test -s ./build/distributions/opensearch-security-${{ env.SECURITY_PLUGIN_VERSION_ONLY_NUMBER }}-${{ env.TEST_QUALIFIER }}.zip && && test -s ./build/distributions/opensearch-sample-resource-plugin-${{ env.SECURITY_PLUGIN_VERSION_ONLY_NUMBER }}-${{ env.TEST_QUALIFIER }}.zip - - - run: ./gradlew clean assemble -Dbuild.version_qualifier=${{ env.TEST_QUALIFIER }} && test -s ./build/distributions/opensearch-security-${{ env.SECURITY_PLUGIN_VERSION_ONLY_NUMBER }}-${{ env.TEST_QUALIFIER }}-SNAPSHOT.zip && test -s ./build/distributions/opensearch-sample-resource-plugin-${{ env.SECURITY_PLUGIN_VERSION_ONLY_NUMBER }}-${{ env.TEST_QUALIFIER }}-SNAPSHOT.zip - - - run: ./gradlew clean publishPluginZipPublicationToZipStagingRepository && test -s ./build/distributions/opensearch-security-${{ env.SECURITY_PLUGIN_VERSION }}.zip && test -s ./build/distributions/opensearch-security-${{ env.SECURITY_PLUGIN_VERSION }}.pom && test -s ./build/distributions/opensearch-security-${{ env.SECURITY_PLUGIN_VERSION }}.zip && test -s ./build/distributions/opensearch-sample-resource-plugin-${{ env.SECURITY_PLUGIN_VERSION }}.pom - - - name: List files in the build directory if there was an error - run: ls -al ./build/distributions/ - if: failure() + - name: Build and Test Artifacts + run: | + # Set version variables + security_plugin_version=$(./gradlew properties -q | grep -E '^version:' | awk '{print $2}') + security_plugin_version_no_snapshot=$(echo $security_plugin_version | sed 's/-SNAPSHOT//g') + security_plugin_version_only_number=$(echo $security_plugin_version_no_snapshot | cut -d- -f1) + test_qualifier=alpha2 + + # Export variables to GitHub Environment + echo "SECURITY_PLUGIN_VERSION=$security_plugin_version" >> $GITHUB_ENV + echo "SECURITY_PLUGIN_VERSION_NO_SNAPSHOT=$security_plugin_version_no_snapshot" >> $GITHUB_ENV + echo "SECURITY_PLUGIN_VERSION_ONLY_NUMBER=$security_plugin_version_only_number" >> $GITHUB_ENV + echo "TEST_QUALIFIER=$test_qualifier" >> $GITHUB_ENV + + # Debug print versions + echo "Versions:" + echo $security_plugin_version + echo $security_plugin_version_no_snapshot + echo $security_plugin_version_only_number + echo $test_qualifier + + # Publish SPI + ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal + ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal -Dbuild.snapshot=false + ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal -Dbuild.snapshot=false -Dbuild.version_qualifier=$test_qualifier + ./gradlew :opensearch-resource-sharing-spi:publishToMavenLocal -Dbuild.version_qualifier=$test_qualifier + + # Build artifacts + ./gradlew clean assemble && \ + test -s ./build/distributions/opensearch-security-$security_plugin_version.zip && \ + test -s ./sample-resource-plugin/build/distributions/opensearch-sample-resource-plugin-$security_plugin_version.zip + + ./gradlew clean assemble -Dbuild.snapshot=false && \ + test -s ./build/distributions/opensearch-security-$security_plugin_version_no_snapshot.zip && \ + test -s ./sample-resource-plugin/build/distributions/opensearch-sample-resource-plugin-$security_plugin_version_no_snapshot.zip + + ./gradlew clean assemble -Dbuild.snapshot=false -Dbuild.version_qualifier=$test_qualifier && \ + test -s ./build/distributions/opensearch-security-$security_plugin_version_only_number-$test_qualifier.zip && \ + test -s ./sample-resource-plugin/build/distributions/opensearch-sample-resource-plugin-$security_plugin_version_only_number-$test_qualifier.zip + + ./gradlew clean assemble -Dbuild.version_qualifier=$test_qualifier && \ + test -s ./build/distributions/opensearch-security-$security_plugin_version_only_number-$test_qualifier-SNAPSHOT.zip && \ + test -s ./sample-resource-plugin/build/distributions/opensearch-sample-resource-plugin-$security_plugin_version_only_number-$test_qualifier-SNAPSHOT.zip + + ./gradlew clean publishPluginZipPublicationToZipStagingRepository && \ + test -s ./build/distributions/opensearch-security-$security_plugin_version.zip && \ + test -s ./build/distributions/opensearch-security-$security_plugin_version.pom && \ + test -s ./sample-resource-plugin/build/distributions/opensearch-sample-resource-plugin-$security_plugin_version.pom + + - name: List files in build directory on failure + if: failure() + run: ls -al ./build/distributions/ diff --git a/.github/workflows/integration-tests-sample-plugin.yml b/.github/workflows/integration-tests-sample-plugin.yml deleted file mode 100644 index e148c528de..0000000000 --- a/.github/workflows/integration-tests-sample-plugin.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Bulk Integration Test For Sample Resource Plugin - -on: [workflow_dispatch] - -env: - GRADLE_OPTS: -Dhttp.keepAlive=false - -jobs: - bulk-integration-test-run: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - jdk: [21] - - steps: - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{ matrix.jdk }} - - - uses: actions/checkout@v4 - - - run: OPENDISTRO_SECURITY_TEST_OPENSSL_OPT=true ./gradlew :opensearch-sample-resource-plugin:integrationTest - - - uses: actions/upload-artifact@v4 - if: always() - with: - name: ${{ matrix.jdk }}-${{ matrix.test-file }}-sample-resource-sharing-reports - path: | - ./sample-resource-sharing-plugin/build/reports/ - - - name: check archive for debugging - if: always() - run: echo "Check the artifact ${{ matrix.jdk }}-${{ matrix.test-file }}-sample-resource-sharing-reports.zip for detailed test results" diff --git a/build.gradle b/build.gradle index 1e686e0605..8319dd0f0b 100644 --- a/build.gradle +++ b/build.gradle @@ -583,6 +583,9 @@ sourceSets { //add new task that runs integration tests task integrationTest(type: Test) { + filter { + excludeTestsMatching 'org.opensearch.sample.*ResourcePlugin*' + } doFirst { // Only run resources tests on resource-test CI environments or locally if (System.getenv('CI_ENVIRONMENT') != 'resource-test' && System.getenv('CI_ENVIRONMENT') != null) {