Use leaf FFI calls to reduce memory copy #570
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
# Confirm that the code and configuration files | |
# are correctly formatted and analyzed. | |
name: quality-control | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
# Cancels the workflow | |
# when another event in the same context happens. | |
# If it's a PR, context is the pull request number. | |
# Otherwise, it uses the Git reference(branch or tag name). | |
group: > | |
${{ github.workflow }} | |
${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
code: | |
name: dart-and-rust-code | |
runs-on: ubuntu-latest | |
env: | |
RUSTFLAGS: -D warnings | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Setup Flutter SDK | |
uses: subosito/flutter-action@v2 | |
with: | |
channel: "stable" | |
- name: Setup Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
- name: Install Clippy | |
run: rustup component add clippy | |
- name: Install the CLI tool | |
working-directory: rust_crate/ | |
run: cargo install --path ./ | |
- name: Fetch Flutter dependencies | |
run: | | |
flutter pub get --directory flutter_ffi_plugin/ | |
flutter pub get --directory flutter_ffi_plugin/cargokit/build_tool | |
- name: Generate message files | |
working-directory: flutter_ffi_plugin/example/ | |
run: rinf message | |
# Targets are basically combinations of | |
# web/native and debug/release. | |
- name: Check for errors in various targets | |
run: | | |
rustup target add wasm32-unknown-unknown | |
cargo clippy | |
cargo clippy --release | |
cargo clippy --target wasm32-unknown-unknown | |
cargo clippy --target wasm32-unknown-unknown --release | |
# The `--all-features` flag doesn't work for the entire workspace. | |
# That's why we are checking only the library crate. | |
- name: Check for errors with all features enabled | |
working-directory: rust_crate/ | |
run: | | |
cargo clippy --all-features | |
cargo clippy --all-features --target wasm32-unknown-unknown | |
- name: Analyze code | |
run: | | |
dart analyze flutter_ffi_plugin --fatal-infos | |
- name: Format code | |
run: | | |
dart format . | |
cargo fmt | |
cargo clippy --fix --allow-dirty | |
- name: Check if the code has changed | |
run: git diff --exit-code | |
config: | |
name: configuration-files | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Check files with Prettier | |
uses: creyD/[email protected] | |
with: | |
dry: True | |
prettier_options: > | |
--write | |
./**/*.{md,yaml} |