Skip to content

feat: add expiration time to multisig #1111

feat: add expiration time to multisig

feat: add expiration time to multisig #1111

Workflow file for this run

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