test #17
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: Kotlin | |
on: | |
- push | |
jobs: | |
# Builds the library and binding for a single target. | |
Library: | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
# - double: aarch64-linux | |
# jna: linux-aarch64 | |
# runner: ubuntu-24.04 | |
# emulated: true | |
- double: x86_64-linux | |
jna: linux-x86-64 | |
runner: ubuntu-24.04 | |
- double: aarch64-darwin | |
jna: darwin-aarch64 | |
runner: macos-latest | |
# - double: x86_64-darwin | |
# jna: darwin-x86-64 | |
# runner: macos-13 | |
variant: | |
- '' | |
# - '-d4' | |
exclude: | |
- target: { double: x86_64-darwin } | |
variant: '-d4' | |
runs-on: ${{ matrix.target.runner }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: QEMU | |
if: ${{ matrix.target.emulated }} | |
run: sudo apt-get install -y qemu-user-static | |
- name: Nix | |
uses: DeterminateSystems/nix-installer-action@v13 | |
with: | |
extra-conf: extra-platforms = ${{ matrix.target.double }} | |
- name: Cache | |
uses: DeterminateSystems/magic-nix-cache-action@v7 | |
- name: Build (bindgen) | |
run: | | |
nix build -L .#bindgen | |
cp -L result/bin/uniffi-bindgen . | |
- name: Build (library) | |
run: | | |
nix build -L .#libddnnife${{ matrix.variant }} | |
mkdir -p libraries/${{ matrix.target.jna }} | |
cp -L result/lib/*ddnnife* libraries/${{ matrix.target.jna }}/ | |
- name: Upload (library) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: libddnnife${{ matrix.variant }}-${{ matrix.target.double }} | |
path: libraries | |
- name: Build | |
run: | | |
cd bindings/kotlin | |
gradle shadowJar --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen | |
- name: Test | |
run: | | |
cd bindings/kotlin | |
gradle test --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen | |
# Creates one JAR for all platforms. | |
Package: | |
needs: Library | |
strategy: | |
fail-fast: false | |
matrix: | |
variant: | |
- '' | |
# - '-d4' | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Nix | |
uses: DeterminateSystems/nix-installer-action@v13 | |
- name: Build (bindgen) | |
run: | | |
nix build -L .#bindgen | |
cp -L result/bin/uniffi-bindgen . | |
- name: Download (libraries) | |
uses: actions/download-artifact@v4 | |
with: | |
path: libraries | |
pattern: libddnnife${{ matrix.variant }}-* | |
merge-multiple: true | |
- name: Build | |
run: | | |
cd bindings/kotlin | |
gradle shadowJar --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen | |
- name: Test | |
run: | | |
cd bindings/kotlin | |
gradle test --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ddnnife-kotlin${{ matrix.variant }} | |
path: bindings/kotlin/build/libs | |
- name: Docs | |
run: | | |
cd bindings/kotlin | |
gradle dokkaHtml --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen | |
mkdir docs | |
mv build/dokka/html docs/kotlin | |
- name: Upload (docs) | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pages-kotlin | |
path: bindings/kotlin/docs | |
# Deploys all pages, including the Kotlin documentation generated above. | |
Pages: | |
if: github.ref == 'refs/heads/main' | |
needs: Package | |
uses: ./.github/workflows/Pages.yaml |