Skip to content

Rename the okio-zstd module to zstd-kmp (#7) #46

Rename the okio-zstd module to zstd-kmp (#7)

Rename the okio-zstd module to zstd-kmp (#7) #46

Workflow file for this run

name: build
on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- 'main'
tags-ignore:
- '**'
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
jobs:
platform-build:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
arch: [amd64]
native-test-tasks: ["linuxX64Test"]
include:
- os: macos-latest-large
arch: x86_64
native-test-tasks: "macosX64Test iosX64Test"
- os: macos-latest
arch: aarch64
native-test-tasks: "macosArm64Test iosSimulatorArm64Test"
# TODO: build on 'windows-latest'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
with:
submodules: true
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # ratchet:actions/setup-java@v4
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- name: Build JNI library (Linux)
if: matrix.os == 'ubuntu-latest'
run: ./zstd-kmp/src/jvmMain/build-linux.sh
- name: Build JNI library (macOS)
if: matrix.os == 'macos-latest' || matrix.os == 'macos-latest-large'
run: ./zstd-kmp/src/jvmMain/build-mac.sh
- name: Kotlin/JVM test
run: ./gradlew jvmTest
- name: Kotlin/Native test
run: ./gradlew ${{ matrix.native-test-tasks }}
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4
with:
name: jvm-native-libraries-${{ matrix.os }}-${{ matrix.arch }}
path: zstd-kmp/src/jvmMain/resources/*
if-no-files-found: error
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4
if: ${{ always() }}
with:
name: test-report-${{ matrix.os }}
path: '**/build/reports/tests/**'
retention-days: 1
check:
runs-on: ubuntu-latest
needs:
- platform-build
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
with:
submodules: true
- uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # ratchet:actions/setup-java@v4
with:
distribution: 'zulu'
java-version-file: .github/workflows/.java-version
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # ratchet:actions/download-artifact@v4
with:
pattern: jvm-native-libraries-*
path: zstd-kmp/src/jvmMain/resources
merge-multiple: true
- name: Run checks
run: ./gradlew apiCheck spotlessCheck assembleAndroidTest
- name: Enable KVM (for Android test)
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Android test
uses: reactivecircus/android-emulator-runner@1dcd0090116d15e7c562f8db72807de5e036a4ed # ratchet:reactivecircus/android-emulator-runner@v2
with:
api-level: 29
emulator-boot-timeout: 20000
script: ./gradlew connectedCheck
- run: ./gradlew publishToMavenCentral
if: ${{ github.ref == 'refs/heads/main' && github.repository == 'square/zstd-kmp' }}
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.SONATYPE_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SECRET_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SECRET_PASSPHRASE }}