Make ActionRequests that extend UpdateRequest to extend more generic ActionRequest #3220
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test and Build Workflow | |
on: | |
pull_request: | |
branches: | |
- "**" | |
push: | |
branches: | |
- "**" | |
jobs: | |
Get-CI-Image-Tag: | |
uses: opensearch-project/opensearch-build/.github/workflows/get-ci-image-tag.yml@main | |
with: | |
product: opensearch | |
test-and-build-linux: | |
needs: Get-CI-Image-Tag | |
env: | |
TEST_FILTER: ${{ matrix.test_filter }} | |
strategy: | |
# This setting says that all jobs should finish, even if one fails | |
fail-fast: false | |
# This starts three jobs, setting these environment variables uniquely for the different jobs | |
matrix: | |
java: [21] | |
feature: [ism, non-ism] | |
include: | |
- feature: ism | |
test_filter: -PincludeTests="org.opensearch.indexmanagement.indexstatemanagement*" | |
- feature: non-ism | |
test_filter: -PexcludeTests="org.opensearch.indexmanagement.indexstatemanagement*" | |
runs-on: ubuntu-latest | |
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 }} | |
options: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-start-options }} | |
steps: | |
- name: Remove unnecessary files | |
run: | | |
rm -rf /usr/share/dotnet | |
rm -rf "$AGENT_TOOLSDIRECTORY" | |
- name: Run start commands | |
run: ${{ needs.Get-CI-Image-Tag.outputs.ci-image-start-command }} | |
# This step uses the setup-java Github action: https://github.com/actions/setup-java | |
- name: Set Up JDK ${{ matrix.java }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin # Temurin is a distribution of adoptium | |
java-version: ${{ matrix.java }} | |
# build index management | |
- name: Checkout Branch | |
uses: actions/checkout@v4 | |
- name: Check working space directory | |
run: du ${GITHUB_WORKSPACE} -h -d 1 | |
- name: Get more space | |
run: | | |
df . -h | |
rm -rf ${GITHUB_WORKSPACE}/.git | |
df . -h | |
# This is a hack, but this step creates a link to the X: mounted drive, which makes the path | |
# short enough to work on Windows | |
- name: Build with Gradle | |
run: | | |
chown -R 1000:1000 `pwd` | |
su `id -un 1000` -c "./gradlew build ${{ env.TEST_FILTER }}" | |
- name: Upload failed logs | |
uses: actions/upload-artifact@v4 | |
if: ${{ failure() }} | |
with: | |
name: logs-${{ matrix.java }}-${{ matrix.feature }} | |
path: build/testclusters/integTest-*/logs/* | |
- name: Create Artifact Path | |
run: | | |
mkdir -p index-management-artifacts | |
cp ./build/distributions/*.zip index-management-artifacts | |
- name: Uploads coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
# This step uses the upload-artifact Github action: https://github.com/actions/upload-artifact | |
- name: Upload Artifacts | |
# v4 requires node.js 20 which is not supported | |
uses: actions/upload-artifact@v4 | |
with: | |
name: index-management-plugin-ubuntu-latest-${{ matrix.java }} | |
path: index-management-artifacts | |
overwrite: 'true' | |
test-and-build-windows-macos: | |
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 | |
# This starts three jobs, setting these environment variables uniquely for the different jobs | |
matrix: | |
java: [21] | |
os: [windows-latest, macos-latest] | |
feature: [ism, non-ism] | |
include: | |
- os: windows-latest | |
os_build_args: -x integTest -x jacocoTestReport | |
working_directory: X:\ | |
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 | |
- name: Set Up JDK ${{ matrix.java }} | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin # Temurin is a distribution of adoptium | |
java-version: ${{ matrix.java }} | |
# build index management | |
- name: Checkout Branch | |
uses: actions/checkout@v4 | |
# This is a hack, but this step creates a link to the X: mounted drive, which makes the path | |
# short enough to work on Windows | |
- name: Shorten Path | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: subst 'X:' . | |
- name: Build with Gradle | |
working-directory: ${{ env.WORKING_DIR }} | |
run: ./gradlew build ${{ env.BUILD_ARGS }} ${{ env.TEST_FILTER }} | |
env: | |
_JAVA_OPTIONS: ${{ matrix.os_java_options }} | |
- name: Create Artifact Path | |
run: | | |
mkdir -p index-management-artifacts | |
cp ./build/distributions/*.zip index-management-artifacts | |
# This step uses the upload-artifact Github action: https://github.com/actions/upload-artifact | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: index-management-plugin-${{ matrix.os }}-${{ matrix.java }} | |
path: index-management-artifacts | |
overwrite: 'true' |