name: Publish release on: release: types: [published] 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: Set up JDK 8 uses: actions/setup-java@v1 with: java-version: 8 - name: Setup Android if: matrix.os != 'windows-latest' shell: bash run: | $ANDROID_HOME/tools/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 linuxTest - 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 publishLinuxPublicationToMavenLocal :jni:jvm:linux:publishJvmPublicationToMavenLocal - name: Publish Windows if: matrix.os == 'windows-latest' shell: msys2 {0} run: ./gradlew :jni:jvm:mingw:publishToMavenLocal - name: Publish MacOS if: matrix.os == 'macOS-latest' shell: bash run: ./gradlew publishToMavenLocal - name: Copy artifact files run: | mkdir -p maven-local/release cp -r ~/.m2/repository/* maven-local/release - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: release path: | maven-local !maven-local/**/maven-metadata-local.xml