Skip to content

Bump flutter_rust_bridge_codegen from 2.0.0-dev.30 to 2.0.0-dev.31 in /packages/codde_protocol/native #133

Bump flutter_rust_bridge_codegen from 2.0.0-dev.30 to 2.0.0-dev.31 in /packages/codde_protocol/native

Bump flutter_rust_bridge_codegen from 2.0.0-dev.30 to 2.0.0-dev.31 in /packages/codde_protocol/native #133

Workflow file for this run

name: Build & Test
on:
pull_request:
push:
branches:
- main
jobs:
# General build, check, and test steps
build_and_test:
runs-on: ubuntu-latest
steps:
# Setup
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v2
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt, clippy
# Rust
- name: Check Rust format
working-directory: ./packages/codde_protocol/native/src
run: rustfmt --check lib.rs
- name: Check Rust format
working-directory: ./packages/codde_protocol/native/client/src
run: rustfmt --check lib.rs
- name: Rust code analysis
working-directory: ./packages/codde_protocol/native
run: cargo clippy -- -D warnings
- name: Run Rust tests
working-directory: ./packages/codde_protocol/native
run: cargo test
- name: Build Rust code for Dart tests
working-directory: ./packages/codde_protocol/native/client
run: |
rustup target add x86_64-unknown-linux-gnu
cargo build --target x86_64-unknown-linux-gnu -r --target-dir target
cp target/x86_64-unknown-linux-gnu/release/libcodde_protocol.so target/release
# Dart/Flutter
- name: Check Dart format
run: melos run check-format --no-select
- name: Dart code analysis
run: melos run analyze --no-select
- name: Run Dart tests
run: melos run test
build:
name: Build PyPi distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Install pypa/build
working-directory: ./packages/codde_protocol/native
run: >-
python3 -m
pip install
build maturin
--user
- name: Build a binary wheel and a source tarball
working-directory: ./packages/codde_protocol/native
run: maturin build --release
- name: Store the distribution packages
uses: actions/upload-artifact@v3
with:
name: python-package-distributions
path: dist/
macos_integration_test:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v2
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Build the XCFramework
run: melos run build:apple
- name: Copy the XCFramework to the needed location
run: |
CURR_VERSION=codde_protocol-v`awk '/^version: /{print $2}' packages/codde_protocol/pubspec.yaml`
cp platform-build/CoddeProtocol.xcframework.zip packages/flutter_codde_protocol/macos/Frameworks/$CURR_VERSION.zip
echo Copied file!
- name: Run Flutter integration tests
working-directory: packages/flutter_codde_protocol
run: flutter test -d macos integration_test
windows_integration_test:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v2
- uses: goto-bus-stop/setup-zig@v2
- uses: KyleMayes/install-llvm-action@v1
with:
version: "15"
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Build the binaries
run: melos run build:other
- name: Copy the binaries to the needed location
shell: bash
run: |
CURR_VERSION=codde_protocol-v`awk '/^version: /{print $2}' packages/codde_protocol/pubspec.yaml`
cp platform-build/other.tar.gz packages/flutter_codde_protocol/windows/$CURR_VERSION.tar.gz
echo Copied file!
- name: Run Flutter integration tests
working-directory: packages/flutter_codde_protocol
run: flutter test -d windows integration_test
linux_integration_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies for flutter integration test
run: sudo apt update && sudo apt-get install -y libglu1-mesa ninja-build clang cmake pkg-config libgtk-3-dev liblzma-dev
- uses: pyvista/setup-headless-display-action@v1
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v2
- uses: goto-bus-stop/setup-zig@v2
- uses: KyleMayes/install-llvm-action@v1
with:
version: "15"
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Build the binaries
run: melos run build:other
- name: Copy the binaries to the needed location
run: |
CURR_VERSION=codde_protocol-v`awk '/^version: /{print $2}' packages/codde_protocol/pubspec.yaml`
cp platform-build/other.tar.gz packages/flutter_codde_protocol/linux/$CURR_VERSION.tar.gz
echo Copied file!
- name: Run Flutter integration tests
working-directory: packages/flutter_codde_protocol
run: flutter test -d linux integration_test
ios_integration_test:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v2
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- 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: Bootstrap
run: melos bs
- name: Build the XCFramework
run: melos run build:apple
- name: Copy the XCFramework to the needed location
run: |
CURR_VERSION=codde_protocol-v`awk '/^version: /{print $2}' packages/codde_protocol/pubspec.yaml`
mkdir -p packages/flutter_codde_protocol/ios/Frameworks
cp platform-build/CoddeProtocol.xcframework.zip packages/flutter_codde_protocol/ios/Frameworks/$CURR_VERSION.zip
echo Copied file!
- name: Run Flutter integration tests
working-directory: packages/flutter_codde_protocol
run: flutter test -d ${{ env.DEVICE_ID }} integration_test
android_integration_test:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: subosito/flutter-action@v2
- uses: bluefireteam/melos-action@v2
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- uses: nttld/setup-ndk@v1
with:
ndk-version: r25b
- uses: actions/setup-java@v3
with:
distribution: zulu
java-version: "11.x"
- name: Build the binaries
run: melos run build:android
- name: Copy the binaries to the needed location
run: |
CURR_VERSION=codde_protocol-v`awk '/^version: /{print $2}' packages/codde_protocol/pubspec.yaml`
cp platform-build/android.tar.gz packages/flutter_codde_protocol/android/$CURR_VERSION.tar.gz
echo Copied file!
- name: Run Flutter integration tests
uses: Wandalen/wretry.action@master # sometimes android tests are flaky
with:
attempt_limit: 5
action: reactivecircus/android-emulator-runner@v2
with: |
api-level: 33
arch: arm64-v8a
ram-size: 1024M
disk-size: 2048M
script: cd packages/flutter_codde_protocol && flutter test -d `flutter devices | grep android | tr ' ' '\n' | grep emulator-` integration_test