feat(ci): enable aarch64 build #26
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: | |
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 | |
run: | | |
nix build -L .#packages.${{ matrix.target.double }}.libddnnife${{ matrix.variant }} | |
mkdir -p libraries/${{ matrix.target.jna }} | |
cp -L result/lib/*ddnnife* libraries/${{ matrix.target.jna }}/ | |
- name: Upload | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.variant }}libddnnife-${{ matrix.target.double }} | |
path: libraries | |
- name: Build (dependencies) | |
if: ${{ matrix.variant == '-d4' }} | |
run: nix build -L .#packages.${{ matrix.target.double }}.dependencies-d4 | |
- name: Upload (dependencies) | |
if: ${{ matrix.variant == '-d4' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dependencies-libddnnife-d4-${{ matrix.target.double }} | |
path: result | |
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: ${{ matrix.variant }}libddnnife-* | |
merge-multiple: true | |
- name: Download (dependencies) | |
if: ${{ matrix.variant == '-d4' }} | |
uses: actions/download-artifact@v4 | |
with: | |
name: dependencies-libddnnife-d4-x86_64-linux | |
- name: Build | |
run: | | |
cd bindings/kotlin | |
gradle shadowJar --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen | |
- name: Test | |
if: ${{ matrix.variant != '-d4' }} | |
run: | | |
cd bindings/kotlin | |
gradle test --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen | |
- name: Test | |
if: ${{ matrix.variant == '-d4' }} | |
env: | |
LD_LIBRARY_PATH: ${{ github.workspace }}/dependencies-libddnnife-d4-x86_64-linux/lib | |
run: | | |
ls -la $LD_LIBRARY_PATH | |
cd bindings/kotlin | |
gradle test --no-daemon -Plibraries=../../libraries -Pbindgen=../../uniffi-bindgen -Pjna.debug_load=true | |
- 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 | |
Pages: | |
if: github.ref == 'refs/heads/main' | |
needs: Package | |
uses: ./.github/workflows/Pages.yaml |