backport #965 #436
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: | |
build: | |
env: | |
BUILD_ARGS: ${{ matrix.os_build_args }} | |
WORKING_DIR: ${{ matrix.working_directory }}. | |
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: [11, 17] | |
os: [ubuntu-latest, windows-latest, macos-latest] | |
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 | |
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@v1 | |
with: | |
java-version: ${{ matrix.java }} | |
# build index management | |
- name: Checkout Branch | |
uses: actions/checkout@v2 | |
# 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: | |
_JAVA_OPTIONS: ${{ matrix.os_java_options }} | |
- name: Upload failed logs | |
uses: actions/upload-artifact@v2 | |
if: ${{ failure() && matrix.os == 'ubuntu-latest' }} | |
with: | |
name: logs | |
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 | |
if: ${{ matrix.os == 'ubuntu-latest' }} | |
uses: codecov/codecov-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
# This step uses the upload-artifact Github action: https://github.com/actions/upload-artifact | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v1 | |
with: | |
name: index-management-plugin-${{ matrix.os }} | |
path: index-management-artifacts |