Build a universal JNI binary for macos #185
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: Publish snapshot | |
on: | |
push: | |
branches: | |
- 'master' | |
- 'snapshot/*' | |
paths-ignore: | |
- '**.md' | |
- '**.adoc' | |
- '**/.gitignore' | |
- '.github/**' | |
- '!.github/workflows/snapshot.yml' | |
jobs: | |
upload: | |
name: Upload | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
steps: | |
- name: Check out | |
uses: actions/checkout@v2 | |
with: | |
submodules: 'true' | |
- name: Cached Konan | |
uses: actions/cache@v2 | |
with: | |
path: ~/.konan | |
key: ${{ runner.os }}-konan-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} | |
restore-keys: ${{ runner.os }}-konan- | |
- name: Cached Gradle | |
uses: actions/cache@v2 | |
with: | |
path: ~/.gradle | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }} | |
restore-keys: ${{ runner.os }}-gradle- | |
- name: Android environment | |
if: matrix.os != 'windows-latest' | |
shell: bash | |
run: | | |
echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV | |
echo "ANDROID_NDK_VERSION=25.2.9519653" >> $GITHUB_ENV | |
- name: Cached Android NDK | |
if: matrix.os != 'windows-latest' | |
uses: actions/cache@v2 | |
with: | |
path: ${{ format('{0}/ndk/{1}', env.ANDROID_HOME, env.ANDROID_NDK_VERSION) }} | |
key: ${{ runner.os }}-android-ndk-${{ env.ANDROID_NDK_VERSION }} | |
- name: Set up shell | |
if: matrix.os == 'windows-latest' | |
run: | | |
echo "C:\msys64\usr\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
rm.exe "C:/WINDOWS/system32/bash.EXE" | |
- name: Install Automake | |
if: matrix.os == 'macOS-latest' | |
run: brew install automake | |
- name: Install Automake (windows) | |
if: matrix.os == 'windows-latest' | |
uses: msys2/setup-msys2@v2 | |
with: | |
path-type: minimal | |
update: true | |
install: >- | |
base-devel | |
autotools | |
mingw-w64-x86_64-gcc | |
- name: Setup Android | |
if: matrix.os != 'windows-latest' | |
shell: bash | |
run: | | |
${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager "ndk;$ANDROID_NDK_VERSION" | |
- name: Setup Android | |
if: matrix.os == 'windows-latest' | |
shell: msys2 {0} | |
run: | | |
echo "skip.android=true" > local.properties | |
- name: Set up JDK 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- name: Check JVM | |
if: matrix.os != 'windows-latest' | |
run: ./gradlew jvmTest | |
- name: Check JVM (Windows) | |
if: matrix.os == 'windows-latest' | |
shell: msys2 {0} | |
run: ./gradlew jvmTest | |
- name: Check Linux | |
if: matrix.os == 'ubuntu-latest' | |
shell: bash | |
run: ./gradlew linuxX64Test | |
- name: Check iOS | |
if: matrix.os == 'macOS-latest' | |
shell: bash | |
run: ./gradlew iosX64Test | |
- name: Check Android | |
if: matrix.os == 'macOS-latest' | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: 27 | |
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
ndk: ${{ env.ANDROID_NDK_VERSION }} | |
cmake: 3.22.1 | |
script: ./gradlew connectedCheck | |
- name: Publish Linux | |
if: matrix.os == 'ubuntu-latest' | |
shell: bash | |
run: ./gradlew publishLinuxX64PublicationToMavenLocal :jni:jvm:linux:publishJvmPublicationToMavenLocal -PsnapshotNumber=${{ github.run_number }} -PgitRef=${{ github.ref }} | |
- name: Publish Windows | |
if: matrix.os == 'windows-latest' | |
shell: msys2 {0} | |
run: ./gradlew :jni:jvm:mingw:publishToMavenLocal -PsnapshotNumber=${{ github.run_number }} -PgitRef=${{ github.ref }} | |
- name: Publish MacOS | |
if: matrix.os == 'macOS-latest' | |
shell: bash | |
run: ./gradlew publishToMavenLocal -PsnapshotNumber=${{ github.run_number }} -PgitRef=${{ github.ref }} | |
- name: Copy artifact files | |
run: | | |
mkdir -p maven-local/snapshot | |
cp -r ~/.m2/repository/* maven-local/snapshot | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: snapshot | |
path: | | |
maven-local | |
!maven-local/**/maven-metadata-local.xml | |