Rust bindings refactor #244
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: Rust CI | |
on: | |
workflow_dispatch: | |
push: | |
paths: | |
- 'rust/**' | |
pull_request: | |
paths: | |
- 'rust/**' | |
jobs: | |
# Check that code compiles and tests pass | |
test: | |
# The testing environment is used to access the BN_SERIAL secret. | |
environment: testing | |
name: cargo test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# We need to add wayland as it's used for file picker in the WARP integration | |
- name: Install system dependencies | |
run: sudo apt-get install libwayland-dev | |
# Pull in Binary Ninja | |
- name: Setup Binary Ninja | |
id: setup-binja | |
uses: Vector35/setup-binary-ninja@v1-beta | |
with: | |
license: '${{ secrets.BN_SERIAL }}' | |
python-support: 'false' | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- name: Test | |
# For now, we run the tests single threaded, there are some data races in core around platform types | |
run: cargo test --all-features -- --test-threads=1 | |
env: | |
BINARYNINJADIR: ${{ steps.setup-binja.outputs.install-path }} | |
BN_LICENSE: ${{ secrets.BN_LICENSE }} | |
# Check lints with clippy | |
clippy: | |
name: cargo clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Ensure clippy is installed | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: clippy | |
- name: Clippy Check | |
uses: clechasseur/rs-clippy-check@v4 | |
with: | |
# We do not run clippy on plugins. | |
working-directory: ./rust | |
args: --all-features | |
# Check formatting with rustfmt | |
formatting: | |
name: cargo fmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
# Ensure rustfmt is installed | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: rustfmt | |
- name: Rustfmt Check | |
uses: actions-rust-lang/rustfmt@v1 | |
# Check spelling with typos | |
spelling: | |
name: typos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Typo Check | |
uses: crate-ci/[email protected] | |
with: | |
files: ./rust |