diff options
| author | unknowntrojan <14975032+unknowntrojan@users.noreply.github.com> | 2023-09-20 18:37:28 +0200 |
|---|---|---|
| committer | unknowntrojan <14975032+unknowntrojan@users.noreply.github.com> | 2023-09-20 18:37:28 +0200 |
| commit | edcd93ce30ea1d85cc60afbf4261c00b5fe81509 (patch) | |
| tree | aadf08596df7666cf2be030b0a5c15246b9ad351 | |
| parent | 8948735839b90ebb6e2c0c1145c28f5cae46ebe5 (diff) | |
add github actions
| -rw-r--r-- | .github/workflows/rust.yml | 102 | ||||
| -rw-r--r-- | Cargo.toml | 16 | ||||
| -rw-r--r-- | README.md | 4 |
3 files changed, 112 insertions, 10 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..b50440c --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,102 @@ +name: Rust + +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: nightly + profile: minimal + override: true + + - name: Install targets + run: | + rustup target add x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu + + - name: Install Binja + env: + BN_SERIAL: ${{ secrets.BN_SERIAL }} + run: | + apt -y update + apt -y install llvm-dev libclang-dev clang llvm-dev libxcb-shape0-dev libxcb-xfixes0-dev build-essential binutils-aarch64-linux-gnu + wget https://raw.githubusercontent.com/Vector35/binaryninja-api/dev/scripts/download_headless.py + python3 -m pip install requests + python3 download_headless.py --serial "$BN_SERIAL" --dev --install --clean --dir /tmp/binja-dev + python3 download_headless.py --serial "$BN_SERIAL" --install --clean --dir /tmp/binja-stable + + - name: Install Binja Stable API + run: | + bash /tmp/binja-stable/binaryninja/scripts/linux-setup.sh -s + python3 /tmp/binja-stable/binaryninja/scripts/install_api.py + + - name: Build Stable - Linux x64 + run: cargo build --release --target x86_64-unknown-linux-gnu && mv target/x86_64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_x64_stable.so + + # - name: Build Stable - Linux aarch64 + # env: + # RUSTFLAGS: "-C target-feature=+neon" + # CC: clang --target aarch64-unknown-linux-gnu + # CXX: clang++ --target aarch64-unknown-linux-gnu + # run: cargo build --release --target aarch64-unknown-linux-gnu && mv target/aarch64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_aarch64_stable.so + + + - name: Install Binja Dev API + run: | + bash /tmp/binja-dev/binaryninja/scripts/linux-setup.sh -s + python3 /tmp/binja-dev/binaryninja/scripts/install_api.py + + - name: Build Dev - Linux x64 + run: cargo build --release --target x86_64-unknown-linux-gnu --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/x86_64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_x64_dev.so + + # - name: Build Dev - Linux aarch64 + # env: + # RUSTFLAGS: "-C target-feature=+neon" + # CC: clang --target aarch64-unknown-linux-gnu + # CXX: clang++ --target aarch64-unknown-linux-gnu + # run: cargo build --release --target aarch64-unknown-linux-gnu --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/aarch64-unknown-linux-gnu/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_linux_aarch64_dev.so + + + # - name: Build Dev - Mac x64 + # run: cargo build --release --target x86_64-apple-darwin --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_x64_dev.so + + # - name: Build Stable - Mac x64 + # run: cargo build --release --target x86_64-apple-darwin && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_x64_stable.so + + + # - name: Build Dev - Mac aarch64 + # run: cargo build --release --target aarch64-apple-darwin --config 'patch."https://github.com/Vector35/binaryninja-api".binaryninja.git="https://github.com/Vector35/binaryninja-api?branch=dev"' && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_aarch64_dev.so + + # - name: Build Stable - Mac aarch64 + # run: cargo build --release --target aarch64-apple-darwin && mv target/release/libbinja_coolsigmaker.so libbinja_coolsigmaker_mac_aarch64_stable.so + + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + files: | + LICENSE + libbinja_coolsigmaker_linux_x64_dev.so + libbinja_coolsigmaker_linux_x64_stable.so + # + # libbinja_coolsigmaker_linux_aarch64_dev.so + # libbinja_coolsigmaker_linux_aarch64_stable.so + # libbinja_coolsigmaker_mac_x64_dev.so + # libbinja_coolsigmaker_mac_x64_stable.so + # libbinja_coolsigmaker_mac_aarch64_dev.so + # libbinja_coolsigmaker_mac_aarch64_stable.so + + @@ -8,19 +8,21 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] +# Local Development +# binaryninja = { path = "../binaryninja-api/rust" } + log = "0.4.17" clipboard = "0.5.0" -# Local -# binaryninja = { path = "../binaryninja-api/rust" } -# Dev -binaryninja = { git = "https://github.com/Vector35/binaryninja-api.git", branch = "dev" } -# Stable -# binaryninja = { git = "https://github.com/Vector35/binaryninja-api.git", tag = "v3.4.4271-stable" } rayon = "1.7.0" iced-x86 = "1.17.0" strum = { version = "0.25.0", features = ["derive"] } serde = { version = "1.0.152", features = ["std"] } serde_json = "1.0.93" thiserror = "1.0.43" -coolfindpattern = "0.1.3" +coolfindpattern = "0.1.4" binary-search = "0.1.2" + +# Dev +# binaryninja = { git = "https://github.com/Vector35/binaryninja-api", branch = "dev" } +# Stable +binaryninja = { git = "https://github.com/Vector35/binaryninja-api", branch = "master" } @@ -31,6 +31,4 @@ Once GitHub Actions are set up and a loader plugin has been written, you will be This project requires the nightly channel of Rust. -Check the Cargo.toml file and adjust the `binaryninja` dependency so it points to whatever Binja update channel you want to compile for. __!MAKE SURE!__ Cargo caught your change of branch. It sometimes doesn't realize you changed it. Delete `Cargo.lock` and/or run `cargo clean`. Otherwise, it'll keep using whatever version was selected when you built or rust-analyzer ran. - -The Stable tag needs to be updated periodically, there is no "newest-stable" tag. +Check the Cargo.toml file and adjust the `binaryninja` dependency so it points to whatever Binja update channel you want to compile for. __!MAKE SURE!__ Cargo caught your change of branch. It sometimes doesn't realize you changed it. Delete `Cargo.lock` to make Cargo realize you did. Otherwise, it'll keep using whatever version was selected when you built or rust-analyzer ran. |
