Skip to content
This repository has been archived by the owner on Oct 3, 2023. It is now read-only.

Update ouisync

Update ouisync #497

Workflow file for this run

on: [push]
name: Ouisync Flutter Plugin
jobs:
setup:
name: Build and test
runs-on: ubuntu-latest
steps:
#
# Setup
#
- uses: actions/checkout@v2
with:
submodules: recursive
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
cache: true
# Cache rust artifacts
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
ouisync/target/
key: ${{ runner.os }}-cargo-${{ hashFiles('ouisync/**/Cargo.toml') }}
- name: Get dependencies
run: |
sudo apt-get install libfuse-dev
flutter pub get
- name: Generate bindings
run: |
cd ouisync && cargo run --bin bindgen
flutter pub run ffigen
#
# Test
#
- name: Building ouisync library for the test
# Building without `--release` because debug is required for `flutter test`
run: cd ouisync && cargo build -p ouisync-ffi # --verbose
- name: Analyze
run: flutter analyze
- name: Run tests
env:
RUST_LOG: ouisync=debug,ouisync::state_monitor=off,sqlx=warn
run: flutter test
#
# Build
#
- name: Add android targets
run: rustup target add x86_64-linux-android # armv7-linux-androideabi aarch64-linux-android i686-linux-android
- name: Tell the build process where Android NDK is located
run: echo "ndk.dir=$ANDROID_NDK_ROOT" >> android/local.properties
# HACK: x86_64-linux-android-ar was removed from the recent NDKs in favor of llvm-ar, but some
# rust crates still expect it there.
- name: Work around missing tool
run: cd $ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin && ln -s llvm-ar x86_64-linux-android-ar
- name: Build AAR
run: flutter build aar --target-platform=android-x64 --no-release --debug --no-profile