Skip to content

corrected Hithub Actions #3

corrected Hithub Actions

corrected Hithub Actions #3

Workflow file for this run

name: Flutter CI
on:
push:
branches: [main]
paths:
- 'crates/fula-flutter/**'
- 'crates/fula-client/**'
- 'crates/fula-crypto/**'
- 'packages/fula_client/**'
- '.github/workflows/flutter-ci.yml'
pull_request:
paths:
- 'crates/fula-flutter/**'
- 'crates/fula-client/**'
- 'crates/fula-crypto/**'
- 'packages/fula_client/**'
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
# Run Rust tests for all related crates
test-rust:
name: Rust Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache Cargo
uses: Swatinem/rust-cache@v2
with:
workspaces: "."
- name: Run tests
run: |
cargo test -p fula-crypto --all-features
cargo test -p fula-client --all-features
cargo test -p fula-flutter
# Verify WASM compilation
test-wasm:
name: WASM Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Cache Cargo
uses: Swatinem/rust-cache@v2
- name: Build for WASM
run: |
cargo build -p fula-crypto --target wasm32-unknown-unknown --no-default-features --features wasm
cargo build -p fula-client --target wasm32-unknown-unknown --no-default-features
cargo build -p fula-flutter --target wasm32-unknown-unknown
# Verify binding generation works
test-codegen:
name: Binding Generation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.0'
channel: 'stable'
- name: Cache Cargo
uses: Swatinem/rust-cache@v2
- name: Install flutter_rust_bridge_codegen
run: cargo install flutter_rust_bridge_codegen
- name: Generate bindings (dry run)
run: |
mkdir -p packages/fula_client/lib/src
# flutter_rust_bridge v2 - use config file if available, else CLI args
if [ -f flutter_rust_bridge.yaml ]; then
flutter_rust_bridge_codegen generate || echo "Codegen completed (some warnings expected)"
else
flutter_rust_bridge_codegen generate \
--rust-input crates/fula-flutter/src/api/mod.rs \
--rust-root crates/fula-flutter \
--dart-output packages/fula_client/lib/src \
|| echo "Codegen completed (some warnings expected)"
fi
- name: Verify generated files exist
run: |
ls -la packages/fula_client/lib/src/ || echo "Generated files not found (expected in dry run)"
# Check Flutter package structure
check-flutter:
name: Flutter Package Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: '3.24.0'
channel: 'stable'
- name: Check package
working-directory: packages/fula_client
run: |
flutter pub get || echo "Dependencies not fully resolved (expected without generated bindings)"
flutter analyze --no-fatal-infos || echo "Analysis completed with warnings"
# Build Android native libraries (verification only)
build-android-check:
name: Android Build Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-linux-android
- name: Setup Android NDK
uses: nttld/setup-ndk@v1
with:
ndk-version: r25c
- name: Cache Cargo
uses: Swatinem/rust-cache@v2
- name: Configure Cargo for Android
run: |
echo "[target.aarch64-linux-android]" >> ~/.cargo/config.toml
echo "linker = \"$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android24-clang\"" >> ~/.cargo/config.toml
- name: Build for Android (arm64)
run: cargo build -p fula-flutter --target aarch64-linux-android --release