From 3f20f053746af6c618f85a51cb84a33516e15c98 Mon Sep 17 00:00:00 2001 From: Prudhvi Godithi Date: Wed, 25 Oct 2023 09:47:17 -0700 Subject: [PATCH] Use the CI image in the workflows (#534) Signed-off-by: Prudhvi Godithi --- .github/workflows/ci.yml | 108 ++++++++++++++++++++++++++++++++++---- .github/workflows/dco.yml | 18 ------- 2 files changed, 97 insertions(+), 29 deletions(-) delete mode 100644 .github/workflows/dco.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 09d31d70..f46d9d73 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,28 +8,74 @@ on: - "*" jobs: - build: + Get-CI-Image-Tag: + uses: opensearch-project/opensearch-build/.github/workflows/get-ci-image-tag.yml@main + with: + product: opensearch + + build-job-scheduler-linux: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] java: [11, 17] - # Job name - name: Build and Test - runs-on: ${{ matrix.os }} + name: Build job-scheduler Plugin on Linux using Container Image + 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: + - name: Checkout job-scheduler + uses: actions/checkout@v2 + - name: Setup Java ${{ matrix.java }} + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.java }} + + - name: Run build + # switching the user, as OpenSearch cluster can only be started as root/Administrator on linux-deb/linux-rpm/windows-zip. + run: | + chown -R 1000:1000 `pwd` + su `id -un 1000` -c "./gradlew build && ./gradlew publishToMavenLocal" + + - name: Upload Coverage Report + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + - uses: actions/upload-artifact@v3 + if: always() + with: + name: linux-JDK${{ matrix.java }}-reports + path: | + ./build/reports/ + + + build-job-scheduler-MacOS: + strategy: + fail-fast: false + matrix: + java: [ 11, 17 ] + + name: Build job-scheduler Plugin on MacOS + needs: Get-CI-Image-Tag + runs-on: macos-latest steps: - # This step uses the checkout Github action: https://github.com/actions/checkout - - name: Checkout - uses: actions/checkout@v4 - # This step uses the setup-java Github action: https://github.com/actions/setup-java + - name: Checkout job-scheduler + uses: actions/checkout@v2 + - name: Setup Java ${{ matrix.java }} uses: actions/setup-java@v1 with: java-version: ${{ matrix.java }} - - name: Build and Test + - name: Run build run: | ./gradlew build @@ -45,6 +91,46 @@ jobs: - uses: actions/upload-artifact@v3 if: always() with: - name: ${{ matrix.os }}-JDK${{ matrix.java }}-reports + name: macos-JDK${{ matrix.java }}-reports + path: | + ./build/reports/ + + + build-job-scheduler-Windows: + strategy: + fail-fast: false + matrix: + java: [ 11, 17 ] + + name: Build job-scheduler Plugin on Windows + needs: Get-CI-Image-Tag + runs-on: windows-latest + + steps: + - name: Checkout job-scheduler + uses: actions/checkout@v2 + + - name: Setup Java ${{ matrix.java }} + uses: actions/setup-java@v1 + with: + java-version: ${{ matrix.java }} + + - name: Run build + run: | + ./gradlew.bat build + + - name: Publish to Maven Local + run: | + ./gradlew.bat publishToMavenLocal + + - name: Upload Coverage Report + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + + - uses: actions/upload-artifact@v3 + if: always() + with: + name: windows-JDK${{ matrix.java }}-reports path: | ./build/reports/ diff --git a/.github/workflows/dco.yml b/.github/workflows/dco.yml deleted file mode 100644 index ff9b980f..00000000 --- a/.github/workflows/dco.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Developer Certificate of Origin Check - -on: [pull_request] - -jobs: - check: - runs-on: ubuntu-latest - - steps: - - name: Get PR Commits - id: 'get-pr-commits' - uses: tim-actions/get-pr-commits@v1.3.0 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - name: DCO Check - uses: tim-actions/dco@v1.1.0 - with: - commits: ${{ steps.get-pr-commits.outputs.commits }}