| name: Java CI |
| |
| on: |
| push: |
| pull_request: |
| branches: |
| - master |
| |
| jobs: |
| test: |
| name: Test on Java ${{ matrix.java_version }} and OS ${{ matrix.os }} |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| java_version: ['11', '13'] |
| os: [ubuntu-latest, windows-latest, macOS-latest] |
| steps: |
| - uses: actions/checkout@v1 |
| - name: Set up JDK ${{ matrix.java_version }} |
| uses: actions/setup-java@v1.3.0 |
| with: |
| java-version: ${{ matrix.java_version }} |
| - name: Main build using Felix |
| run: ./mvnw clean install -B -Pfelix -Pjava8 |
| - name: Main build using Equinox |
| run: ./mvnw clean install -B -Pequinox -Pjava8 |
| - name: Build Android App |
| if: matrix.java_version == '11' && matrix.os == 'ubuntu-latest' |
| run: | |
| cp atomos.examples/atomos.examples.index/target/org.apache.felix.atomos.examples.index-*.jar atomos.examples/atomos.examples.android/app/libs |
| atomos.examples/atomos.examples.android/gradlew -b atomos.examples/atomos.examples.android/build.gradle build |
| - name: Setup GraalVM environment |
| if: matrix.os == 'ubuntu-latest' |
| uses: DeLaGuardo/setup-graalvm@2.0 |
| with: |
| # The GraalVM version to make available on the path. |
| graalvm-version: '20.2.0.java11' |
| - name: Install substrate native-image support |
| if: matrix.os == 'ubuntu-latest' |
| run: gu install native-image |
| - name: Build Equinox substrate example |
| if: matrix.os == 'ubuntu-latest' |
| run: ./mvnw clean package -f atomos.examples/atomos.examples.substrate.lib/pom.xml |