Fix repo_creation_test.dart #2389
Workflow file for this run
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: CI | |
on: | |
push: | |
paths-ignore: | |
- '**/README.md' | |
pull_request: | |
branches: [master] | |
jobs: | |
build_and_test: | |
name: build and test on ${{ matrix.name }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
name: [android, linux, windows] | |
include: | |
- name: android | |
os: ubuntu-latest | |
env: | |
OUISYNC_LIB: ouisync/target/debug/libouisync_ffi.so | |
target: aarch64-linux-android | |
ndk: | |
version: r25c | |
abi: arm64-v8a | |
build-args: apk --target-platform android-arm64 | |
- name: linux | |
os: ubuntu-latest | |
env: | |
OUISYNC_LIB: ouisync/target/debug/libouisync_ffi.so | |
# TODO: enable analysis | |
# analyze: true | |
build-args: linux | |
- name: windows | |
os: windows-latest | |
env: | |
# Install Dokan2.dll to where `flutter test` can find it | |
DOKAN_DLL_OUTPUT_PATH: C:\Windows\System32 | |
OUISYNC_LIB: ouisync\target\debug\ouisync_ffi.dll | |
build-args: windows | |
env: ${{ matrix.env }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Add rust target | |
run: rustup target add ${{ matrix.target }} | |
if: matrix.target != '' | |
- name: Setup Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
if: matrix.name == 'android' | |
- name: Install build dependencies (linux) | |
run: | | |
# https://github.com/orgs/community/discussions/109146 | |
sudo apt update -y | |
sudo apt-get install libappindicator3-dev \ | |
libfuse-dev \ | |
libgtk-3-dev \ | |
ninja-build | |
if: matrix.name == 'linux' | |
- name: Install build dependencies (android) | |
# Note that libfuse-dev is not required to build the Android app, but | |
# later in this CI script we also run tests on Linux which do require | |
# it. | |
run: sudo apt-get install libfuse-dev | |
if: matrix.name == 'android' | |
- name: Install Android NDK | |
uses: nttld/setup-ndk@v1 | |
with: | |
ndk-version: ${{ matrix.ndk.version }} | |
if: matrix.ndk.version != '' | |
- name: Set NDK ABI filter | |
run: echo "ndk.abiFilters=${{ matrix.ndk.abi }}" >> android/local.properties | |
if: matrix.ndk.abi != '' | |
- uses: subosito/flutter-action@v2 | |
with: | |
channel: 'stable' | |
# Downgrade flutter from the current 3.24.0 version due to a compilation bug | |
# in the extended_text dependency. | |
# https://github.com/fluttercandies/extended_text/issues/166 | |
# TODO: Remove the below line when the above bug is resolved. | |
flutter-version: 3.22.3 | |
- name: Run Flutter doctor | |
run: flutter doctor -v | |
- name: Get Flutter packages | |
run: dart pub get | |
- name: Generate the Dart bindings for the Ouisync library | |
working-directory: ouisync/bindings/dart | |
run: dart util/bindgen.dart | |
- name: Analyze | |
run: | | |
pushd lib | |
flutter analyze | |
popd | |
pushd test | |
flutter analyze | |
popd | |
pushd util | |
flutter analyze | |
popd | |
if: matrix.analyze | |
- name: Build Ouisync library for tests | |
working-directory: ouisync | |
run: cargo build --package ouisync-ffi --lib | |
- name: Run tests | |
run: | |
flutter test | |
- name: Build Ouisync app | |
run: flutter --verbose build ${{ matrix.build-args }} |