| 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.0.0.java8' |
| - 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.equinox/pom.xml |
| - name: Upload Atomos Index Executable JAR |
| if: matrix.java_version == '11' && matrix.os == 'ubuntu-latest' |
| uses: actions/upload-artifact@v1 |
| with: |
| name: org.apache.felix.atomos.examples.index-0.0.1-SNAPSHOT.jar |
| path: atomos.examples/atomos.examples.index/target/org.apache.felix.atomos.examples.index-0.0.1-SNAPSHOT.jar |
| - name: Upload Atomos Spring Loader Executable JAR |
| if: matrix.java_version == '11' && matrix.os == 'ubuntu-latest' |
| uses: actions/upload-artifact@v1 |
| with: |
| name: org.apache.felix.atomos.examples.springloader-0.0.1-SNAPSHOT.jar |
| path: atomos.examples/atomos.examples.springloader/target/org.apache.felix.atomos.examples.springloader-0.0.1-SNAPSHOT.jar |
| - name: Upload Atomos Android App |
| if: matrix.java_version == '11' && matrix.os == 'ubuntu-latest' |
| uses: actions/upload-artifact@v1 |
| with: |
| name: atomos-app.apk |
| path: atomos.examples/atomos.examples.android/app/build/outputs/apk/debug/app-debug.apk |