Adds support to build as an Android module #379
Workflow file for this run
This file contains hidden or 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: tests | |
| on: | |
| push: | |
| branches: [master, stable-*] | |
| pull_request: | |
| branches: [master, stable-*] | |
| schedule: | |
| # Every Sunday, rerun | |
| - cron: "0 12 * * 0" | |
| jobs: | |
| tests: | |
| name: Java ${{ matrix.java-version }} ${{ matrix.os }} ${{ matrix.dockcross-only }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04] | |
| java-distribution: [adopt] | |
| java-version: [11, 17, 21, 22] | |
| dockcross-only: ["android-arm", "android-arm64", "linux-arm64", "linux-armv5", "linux-armv7", "linux-s390x", "linux-ppc64le", "linux-x64", "linux-x86", "windows-static-x64", "windows-static-x86"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: "${{ matrix.java-distribution }}" | |
| java-version: "${{ matrix.java-version }}" | |
| - uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: wrapper | |
| - uses: actions/cache@v4 | |
| id: gradle-cache | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Format check | |
| run: ./gradlew spotlessCheck | |
| - name: Tests | |
| run: ./gradlew clean test -Ph3SystemPrune=true "-Ph3DockcrossOnly=${{ matrix.dockcross-only }}" | |
| env: | |
| OCI_EXE: docker | |
| - name: Format check for C | |
| run: git diff --exit-code | |
| - uses: actions/upload-artifact@v4 | |
| name: Upload artifacts | |
| if: ${{ matrix.java-version == 11 }} | |
| with: | |
| name: docker-built-shared-objects-${{ matrix.dockcross-only }} | |
| path: | | |
| src/main/resources/*/*.so | |
| src/main/resources/*/*.dll | |
| if-no-files-found: error | |
| tests-new-dockcross: | |
| name: Dockcross ${{ matrix.dockcross-tag }} Java ${{ matrix.java-version }} ${{ matrix.os }} ${{ matrix.dockcross-only }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04] | |
| java-distribution: [adopt] | |
| java-version: [21] | |
| dockcross-tag: ["latest"] | |
| dockcross-only: ["android-arm", "android-arm64", "linux-arm64", "linux-armv5", "linux-armv7", "linux-s390x", "linux-ppc64le", "linux-x64", "linux-x86", "windows-static-x64", "windows-static-x86"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: "${{ matrix.java-distribution }}" | |
| java-version: "${{ matrix.java-version }}" | |
| - uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: wrapper | |
| - uses: actions/cache@v4 | |
| id: gradle-cache | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Tests | |
| run: ./gradlew clean test -Ph3SystemPrune=true "-Ph3DockcrossTag=${{ matrix.dockcross-tag }}" "-Ph3DockcrossOnly=${{ matrix.dockcross-only }}" | |
| env: | |
| OCI_EXE: docker | |
| tests-no-docker: | |
| name: Java (No Docker) ${{ matrix.java-version }} ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| # TODO: Docker on macos-latest running is not working | |
| # TODO: Windows pinned back | |
| os: [macos-latest, windows-2022] | |
| java-distribution: [adopt] | |
| java-version: [11, 17, 21, 22] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: "${{ matrix.java-distribution }}" | |
| java-version: "${{ matrix.java-version }}" | |
| - uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: wrapper | |
| - uses: actions/cache@v4 | |
| id: gradle-cache | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Tests | |
| run: ./gradlew clean test | |
| - uses: actions/upload-artifact@v4 | |
| name: Upload Mac OS Artifacts | |
| if: ${{ matrix.os == 'macos-latest' && matrix.java-version == 11 }} | |
| with: | |
| name: macos-built-shared-objects | |
| path: src/main/resources/*/*.dylib | |
| if-no-files-found: error | |
| tests-coverage: | |
| name: Java (Coverage) ${{ matrix.java-version }} ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04] | |
| java-distribution: [adopt] | |
| java-version: [21] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: "${{ matrix.java-distribution }}" | |
| java-version: "${{ matrix.java-version }}" | |
| - uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: wrapper | |
| - uses: actions/cache@v4 | |
| id: gradle-cache | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Coverage report | |
| run: | | |
| ./gradlew clean test jacocoTestReport coverallsJacoco -Ph3UseDocker=false -Ph3TestSystem=true -Ph3AdditionalArgLine="-Djava.library.path=./src/main/resources/linux-x64/" | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| tests-use-built-artifacts: | |
| name: Java (Built Artifacts) ${{ matrix.java-version }} ${{ matrix.os }} | |
| needs: | |
| - tests | |
| - tests-no-docker | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-22.04] | |
| java-distribution: [adopt] | |
| java-version: [11] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v2 | |
| with: | |
| distribution: "${{ matrix.java-distribution }}" | |
| java-version: "${{ matrix.java-version }}" | |
| - uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: wrapper | |
| - uses: actions/cache@v4 | |
| id: gradle-cache | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Download Docker binaries | |
| uses: actions/[email protected] | |
| with: | |
| pattern: docker-built-shared-objects-* | |
| merge-multiple: true | |
| path: src/main/resources/ | |
| - name: Download Mac binaries | |
| uses: actions/[email protected] | |
| with: | |
| name: macos-built-shared-objects | |
| path: src/main/resources/ | |
| - name: Download and test | |
| run: | | |
| ./gradlew clean test -Ph3GithubArtifactsUse=true -Ph3GithubArtifactsByRun=true | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| tests-native: | |
| name: Native image ${{ matrix.java-version }} ${{ matrix.os }} | |
| needs: | |
| - tests | |
| - tests-no-docker | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ ubuntu-22.04 ] | |
| java-distribution: [ graalvm ] | |
| java-version: [ 21 ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: "${{ matrix.java-distribution }}" | |
| java-version: "${{ matrix.java-version }}" | |
| - uses: gradle/actions/setup-gradle@v3 | |
| with: | |
| gradle-version: wrapper | |
| - uses: actions/cache@v4 | |
| id: gradle-cache | |
| with: | |
| path: | | |
| ~/.gradle/caches | |
| ~/.gradle/wrapper | |
| key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| ${{ runner.os }}-gradle- | |
| - name: Download Docker binaries | |
| uses: actions/[email protected] | |
| with: | |
| pattern: docker-built-shared-objects-* | |
| merge-multiple: true | |
| path: src/main/resources/ | |
| - name: Download Mac binaries | |
| uses: actions/[email protected] | |
| with: | |
| name: macos-built-shared-objects | |
| path: src/main/resources/ | |
| - name: Download and test | |
| run: | | |
| ./gradlew clean test -Pnative -Ph3GithubArtifactsUse=true -Ph3GithubArtifactsByRun=true | |
| env: | |
| GH_TOKEN: ${{ github.token }} |