chore(deps): bump flutter_rust_bridge from 1.78.0 to 2.7.0 in /packages/nekoton_bridge #1188
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: Build & Test | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
env: | |
CARGO_INCREMENTAL: "1" | |
jobs: | |
semantic_pull_request: | |
uses: VeryGoodOpenSource/very_good_workflows/.github/workflows/semantic_pull_request.yml@v1 | |
# General build, check, and test steps | |
build_and_test: | |
runs-on: macos-latest | |
steps: | |
# Setup | |
- uses: actions/checkout@v4 | |
- uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: '3.24.0' | |
channel: 'stable' | |
cache: true | |
cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} | |
- uses: bluefireteam/melos-action@v3 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
# Dart/Flutter format checking | |
- name: Clean before check-format | |
run: melos clean | |
- name: Boostrap everything | |
run: melos bs | |
- name: Check Dart format | |
run: melos run check-format --no-select | |
# Rust | |
- name: Build Rust code for Dart tests | |
run: cargo build -r | |
- name: Check Rust format | |
working-directory: ./packages/nekoton_bridge/native/src | |
run: rustfmt --check lib.rs --edition 2018 | |
# TODO: update flutter & flutter-rust-bridge | |
# - name: Rust code analysis | |
# run: cargo clippy -- -D warnings | |
- name: Run Rust tests | |
run: cargo test | |
# Dart/Flutter | |
- name: Generate dart code | |
run: melos codegen --no-select | |
- name: Dart code analysis | |
run: melos run analyze --no-select | |
- name: Run Dart tests | |
run: melos run test --no-select | |
# Check if all the generated code is up to date | |
- name: Check git diff | |
run: melos git-check | |
# TODO: fix ios build & test | |
# ios_integration_test: | |
# runs-on: macos-latest | |
# timeout-minutes: 360 | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: '3.16.9' | |
# channel: 'stable' | |
# cache: true | |
# cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} | |
# - uses: bluefireteam/melos-action@v3 | |
# - uses: actions-rs/toolchain@v1 | |
# with: | |
# toolchain: 1.74.1 | |
# - name: Set up cargo cache | |
# uses: actions/cache@v3 | |
# continue-on-error: false | |
# with: | |
# path: | | |
# ~/.cargo/bin/ | |
# ~/.cargo/registry/index/ | |
# ~/.cargo/registry/cache/ | |
# ~/.cargo/git/db/ | |
# target/ | |
# key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
# restore-keys: ${{ runner.os }}-cargo- | |
# - name: Start iOS Simulator | |
# run: | | |
# DEVICE_ID=$(xcrun xctrace list devices | grep iPhone | head -1 | awk '{print $NF}' | tr -d '()') | |
# echo "DEVICE_ID=$DEVICE_ID" >> $GITHUB_ENV | |
# xcrun simctl boot $DEVICE_ID | |
# - name: Build the XCFramework | |
# run: melos run build:apple | |
# - name: Copy the XCFramework to the needed location | |
# run: | | |
# CURR_VERSION=nekoton_bridge-v`awk '/^version: /{print $2}' packages/nekoton_bridge/pubspec.yaml` | |
# cp platform-build/NekotonBridge.xcframework.zip packages/flutter_nekoton_bridge/ios/Frameworks/$CURR_VERSION.zip | |
# echo Copied file! | |
# # This is fucking hilarious, but no one has an idea how to fix | |
# # TimeoutException after 0:12:00.000000 bug: | |
# # https://github.com/flutter/flutter/issues/105913 | |
# # So, this is a magic that probably can 'fix' | |
# - name: Pre-build the Flutter app | |
# working-directory: packages/flutter_nekoton_bridge/example | |
# run: flutter build ios --no-codesign --simulator --target=integration_test/app_test.dart | |
# - name: Run Flutter integration tests | |
# working-directory: packages/flutter_nekoton_bridge/example | |
# run: flutter test -d ${{ env.DEVICE_ID }} --dart-define=FLUTTER_TEST_SKIP_FLAKY_IOS=${{ vars.FLUTTER_TEST_SKIP_FLAKY_IOS }} integration_test | |
# TODO: integration tests take too long to run | |
# android_integration_test: | |
# runs-on: macos-13 | |
# timeout-minutes: 360 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: '3.24.0' | |
# channel: 'stable' | |
# cache: true | |
# cache-key: flutter-:os:-:channel:-:version:-:arch:-:hash:-${{ hashFiles('**/pubspec.lock') }} | |
# - uses: bluefireteam/melos-action@v3 | |
# - uses: dtolnay/rust-toolchain@stable | |
# - uses: Swatinem/rust-cache@v2 | |
# - uses: nttld/setup-ndk@v1 | |
# with: | |
# ndk-version: r25b | |
# - uses: actions/setup-java@v4 | |
# with: | |
# distribution: zulu | |
# java-version: "17.x" | |
# - name: Gradle cache | |
# uses: gradle/gradle-build-action@v3 | |
# - name: AVD cache | |
# uses: actions/cache@v4 | |
# id: avd-cache | |
# with: | |
# path: | | |
# ~/.android/avd/* | |
# ~/.android/adb* | |
# key: avd-33 | |
# - name: create AVD and generate snapshot for caching | |
# if: steps.avd-cache.outputs.cache-hit != 'true' | |
# uses: reactivecircus/android-emulator-runner@v2 | |
# with: | |
# api-level: 33 | |
# target: google_apis | |
# arch: x86_64 | |
# ram-size: 1024M | |
# disk-size: 2048M | |
# force-avd-creation: false | |
# emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
# disable-animations: false | |
# script: echo "Generated AVD snapshot for caching." | |
# - name: Build the binaries | |
# run: melos run build:android | |
# - name: Copy the binaries to the needed location | |
# run: | | |
# CURR_VERSION=nekoton_bridge-v`awk '/^version: /{print $2}' packages/nekoton_bridge/pubspec.yaml` | |
# cp platform-build/android.tar.gz packages/flutter_nekoton_bridge/android/$CURR_VERSION.tar.gz | |
# echo Copied file! | |
# - name: Run Flutter integration tests | |
# uses: Wandalen/wretry.action@master | |
# with: | |
# attempt_limit: 5 | |
# action: reactivecircus/android-emulator-runner@v2 | |
# with: | | |
# api-level: 33 | |
# target: google_apis | |
# arch: x86_64 | |
# ram-size: 1024M | |
# disk-size: 2048M | |
# force-avd-creation: false | |
# emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
# disable-animations: true | |
# script: cd packages/flutter_nekoton_bridge/example && flutter test --dart-define=FLUTTER_TEST_SKIP_FLAKY_ANDROID=${{ vars.FLUTTER_TEST_SKIP_FLAKY_ANDROID }} -d `flutter devices | grep android | tr ' ' '\n' | grep emulator-` integration_test |