Skip to content

Update dependency androidx.test:runner to v1.7.0 (#36) #130

Update dependency androidx.test:runner to v1.7.0 (#36)

Update dependency androidx.test:runner to v1.7.0 (#36) #130

Workflow file for this run

name: build
on:
pull_request: {}
workflow_dispatch: {}
push:
branches:
- 'main'
tags:
- '**'
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
jobs:
static-checks:
runs-on: ubuntu-latest
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: Static checks
run: ./gradlew apiCheck spotlessCheck
jvm-test-binaries:
runs-on: macos-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
with:
submodules: true
- uses: mlugg/setup-zig@8d6198c65fb0feaa111df26e6b467fea8345e46f # v2
with:
version: 0.14.0
- run: zig build -p src/jvmMain/resources/jni
working-directory: zstd-kmp
- run: ./gradlew :zstd-kmp:installJvmTestDistribution
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4
with:
name: jni-binaries
path: zstd-kmp/src/jvmMain/resources/jni
if-no-files-found: error
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4
with:
name: zstd-kmp-jvm-tests
path: zstd-kmp/build/install/jvmTest
if-no-files-found: error
native-test-binaries:
runs-on: macos-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
with:
submodules: true
- run: ./gradlew :zstd-kmp:linkNativeDebugTests
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4
with:
name: zstd-kmp-native-tests
path: zstd-kmp/build/bin
if-no-files-found: error
platform-test:
needs:
- jvm-test-binaries
- native-test-binaries
strategy:
fail-fast: false
matrix:
platform:
- os: macOS-13
native-target: macosX64
- os: macOS-15
native-target: macosArm64
- os: ubuntu-24.04
native-target: linuxX64
- os: ubuntu-24.04-arm
native-target: linuxArm64
- os: windows-2025
native-target: mingwX64
- os: windows-11-arm
native-target: skip
runs-on: ${{ matrix.platform.os }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # ratchet:actions/checkout@v4
with:
sparse-checkout: .github/workflows/.java-version
sparse-checkout-cone-mode: false
- 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:
name: zstd-kmp-jvm-tests
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # ratchet:actions/download-artifact@v4
if: matrix.platform.native-target != 'skip'
with:
name: zstd-kmp-native-tests
- name: Run JVM tests
run: |
chmod +x bin/zstd-kmp-test
bin/zstd-kmp-test
- name: Run native tests
if: matrix.platform.native-target != 'skip'
shell: bash
run: |
chmod +x ${{ matrix.platform.native-target }}/debugTest/test.*
${{ matrix.platform.native-target }}/debugTest/test.*
android-test:
runs-on: ubuntu-latest
needs:
- jvm-test-binaries
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: 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 assembleAndroidTest connectedCheck
- 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
final-status:
if: ${{ !cancelled() }}
runs-on: ubuntu-latest
needs:
- platform-test
- android-test
- static-checks
steps:
- name: Check
run: |
results=$(tr -d '\n' <<< '${{ toJSON(needs.*.result) }}')
if ! grep -q -v -E '(failure|cancelled)' <<< "$results"; then
echo "One or more required jobs failed"
exit 1
fi
publish:
needs:
- final-status
runs-on: ubuntu-latest
if: ${{startsWith(github.ref, 'refs/tags/') && github.repository == 'square/zstd-kmp' }}
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:
name: jni-binaries
path: zstd-kmp/src/jvmMain/resources/jni
- run: ./gradlew publishToMavenCentral
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 }}