diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 4a257534..29053c40 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -10,28 +10,60 @@ on: # We build for all combinations but run tests only on one combination (linux & latest java) jobs: - build: - continue-on-error: true + Get-CI-Image-Tag: + runs-on: ubuntu-latest + outputs: + ci-image-version-linux: ${{ steps.step-ci-image-version-linux.outputs.ci-image-version-linux }} + steps: + - name: Install crane + uses: iarekylew00t/crane-installer@v1 + with: + crane-release: v0.15.2 + - name: Checkout opensearch-build repository + uses: actions/checkout@v2 + with: + repository: 'opensearch-project/opensearch-build' + ref: 'main' + path: 'opensearch-build' + - name: Get ci image version from opensearch-build repository scripts + id: step-ci-image-version-linux + run: | + crane version + CI_IMAGE_VERSION=`opensearch-build/docker/ci/get-ci-images.sh -p centos7 -u opensearch -t build | head -1` + echo $CI_IMAGE_VERSION + echo "ci-image-version-linux=$CI_IMAGE_VERSION" >> $GITHUB_OUTPUT + + Build-Test-CCR-Linux: strategy: matrix: - java: - - 11 - - 17 - # Job name - name: Run integration tests on linux with Java ${{ matrix.java }} + java: [11, 17] + + name: Build and Test CCR Plugin on Linux runs-on: ubuntu-latest + needs: Get-CI-Image-Tag + container: + # using the same image which is used by opensearch-build team to build the OpenSearch Distribution + # this image tag is subject to change as more dependencies and updates will arrive over time + image: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-version-linux }} + # need to switch to root so that github actions can install runner binary on container without permission issues. + options: --user root + steps: - # This step uses the setup-java Github action: https://github.com/actions/setup-java - - name: Set Up JDK ${{ matrix.java }} + - name: Checkout CCR + uses: actions/checkout@v1 + with: + submodules: true + + - name: Setup Java ${{ matrix.java }} uses: actions/setup-java@v1 with: java-version: ${{ matrix.java }} - # This step uses the checkout Github action: https://github.com/actions/checkout - - name: Checkout Branch - uses: actions/checkout@v2 - - name: Build and run Replication tests + + - name: Run build + # switching the user, as OpenSearch cluster can only be started as root/Administrator on linux-deb/linux-rpm/windows-zip. run: | - ./gradlew --refresh-dependencies clean release -D"build.snapshot=true" + chown -R opensearch.opensearch `pwd` + su opensearch -c "whoami && java -version && ./gradlew --refresh-dependencies clean release -D"build.snapshot=true" - name: Upload failed logs uses: actions/upload-artifact@v2 if: failure() @@ -45,7 +77,7 @@ jobs: run: | mkdir -p cross-cluster-replication-artifacts cp ./build/distributions/*.zip cross-cluster-replication-artifacts - - name: Uploads coverage + - name: Upload Coverage Report + uses: codecov/codecov-action@v1 with: - fetch-depth: 2 - uses: codecov/codecov-action@v1.2.1 + token: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7994cd99..74d1bff2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,7 +64,7 @@ jobs: # switching the user, as OpenSearch cluster can only be started as root/Administrator on linux-deb/linux-rpm/windows-zip. run: | chown -R opensearch.opensearch `pwd` - su opensearch -c "whoami && java -version && ./gradlew build" + su opensearch -c "whoami && java -version && ./gradlew --refresh-dependencies clean release -D"build.snapshot=true" -x test -x IntegTest" - name: Upload Coverage Report uses: codecov/codecov-action@v1