Add functional header #251
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: Build | |
on: | |
push: | |
branches: ["master"] | |
paths-ignore: | |
- 'README.md' | |
pull_request: | |
jobs: | |
build: | |
name: Build on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest, macOS-latest ] | |
steps: | |
- name: Check out | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
cache: 'gradle' | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{ runner.os }}-${{ github.sha }} | |
restore-keys: ${{ runner.os }} | |
- name: Build with Gradle | |
run: | | |
ccache -o cache_dir=${{ github.workspace }}/.ccache | |
ccache -o hash_dir=false | |
ccache -o compiler_check='%compiler% -dumpmachine; %compiler% -dumpversion' | |
ccache -p | |
echo 'android.native.buildOutput=verbose' >> gradle.properties | |
./gradlew :lsplant:publishToMavenLocal :lsplant:prefabDebugPackage | |
./gradlew --stop | |
env: | |
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.maven_pgp_signingKey }} | |
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.maven_pgp_signingPassword }} | |
- name: Upload library | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ matrix.os }}-library | |
path: ~/.m2 | |
test: | |
needs: build | |
name: Test on API ${{ matrix.api-level }} ${{ matrix.arch }} | |
runs-on: macos-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- api-level: 21 | |
target: default | |
arch: x86_64 | |
- api-level: 21 | |
target: default | |
arch: x86 | |
- api-level: 22 | |
target: default | |
arch: x86_64 | |
- api-level: 22 | |
target: default | |
arch: x86 | |
- api-level: 23 | |
target: default | |
arch: x86_64 | |
- api-level: 23 | |
target: default | |
arch: x86 | |
- api-level: 24 | |
target: default | |
arch: x86_64 | |
- api-level: 24 | |
target: default | |
arch: x86 | |
- api-level: 25 | |
target: default | |
arch: x86_64 | |
- api-level: 25 | |
target: default | |
arch: x86 | |
- api-level: 26 | |
target: default | |
arch: x86_64 | |
- api-level: 26 | |
target: default | |
arch: x86 | |
- api-level: 27 | |
target: default | |
arch: x86_64 | |
- api-level: 27 | |
target: default | |
arch: x86 | |
- api-level: 28 | |
target: default | |
arch: x86_64 | |
- api-level: 28 | |
target: default | |
arch: x86 | |
- api-level: 29 | |
target: default | |
arch: x86_64 | |
- api-level: 29 | |
target: default | |
arch: x86 | |
- api-level: 30 | |
target: default | |
arch: x86_64 | |
- api-level: 30 | |
target: google_apis | |
arch: x86 | |
- api-level: 31 | |
target: default | |
arch: x86_64 | |
- api-level: 31 | |
target: android-tv | |
arch: x86 | |
- api-level: 32 | |
target: google_apis | |
arch: x86_64 | |
- api-level: 33 | |
target: google_apis | |
arch: x86_64 | |
- api-level: 33 | |
target: android-tv | |
arch: x86 | |
- api-level: 34 | |
target: google_apis | |
arch: x86_64 | |
- api-level: 34 | |
target: android-tv | |
arch: x86 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'recursive' | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
cache: 'gradle' | |
- name: ccache | |
uses: hendrikmuhs/[email protected] | |
with: | |
key: ${{ runner.os }}-${{ github.sha }} | |
restore-keys: ${{ runner.os }} | |
save: false | |
- name: run tests | |
uses: yujincheng08/android-emulator-runner@release/apilevel | |
with: | |
api-level: ${{ matrix.api-level }} | |
arch: ${{ matrix.arch }} | |
target: ${{ matrix.target }} | |
script: | | |
ccache -o cache_dir=${{ github.workspace }}/.ccache | |
ccache -o hash_dir=false | |
ccache -o compiler_check='%compiler% -dumpmachine; %compiler% -dumpversion' | |
echo 'android.native.buildOutput=verbose' >> gradle.properties | |
./gradlew :test:connectedCheck | |
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
disable-animations: true | |
avd-name: ${{ matrix.api-level }}_${{ matrix.arch }} | |
- name: Upload outputs | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-outputs | |
path: test/build/outputs |