Skip to content

Remove submodule configuration for 3rd-github/idalib from `.gitmodu… #21

Remove submodule configuration for 3rd-github/idalib from `.gitmodu…

Remove submodule configuration for 3rd-github/idalib from `.gitmodu… #21

Workflow file for this run

# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Build and Release
on:
push:
branches: [master]
tags: ["v*"]
pull_request:
branches: [master]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: "1"
IDASDKDIR: ${{ github.workspace }}/ida-sdk
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
submodules: true
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: HexRaysSA/ida-sdk
path: ida-sdk
fetch-depth: 1
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang libclang-dev llvm-dev
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
- name: Validate Rust library tests
run: cargo test --locked --lib -- --nocapture
- name: Validate Python scripts
run: |
python3 -m py_compile \
scripts/decompile_structured.py \
scripts/run_dbg_test.py \
scripts/stress_test.py \
scripts/test_dbg_headless.py \
scripts/verify_9x_compat.py
build-linux:
needs: validate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
submodules: true
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: HexRaysSA/ida-sdk
path: ida-sdk
fetch-depth: 1
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang libclang-dev llvm-dev
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
- name: Build release binary
run: cargo build --release --locked --bin ida-cli -vv
- name: Upload artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: ida-cli-linux-x86_64
path: target/release/ida-cli
build-macos:
needs: validate
runs-on: macos-14
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
submodules: true
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
repository: HexRaysSA/ida-sdk
path: ida-sdk
fetch-depth: 1
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
- name: Build release binary
run: cargo build --release --locked --bin ida-cli
- name: Upload artifact
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: ida-cli-darwin-arm64
path: target/release/ida-cli
release:
needs: [validate, build-linux, build-macos]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0
- name: Download all artifacts
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
with:
path: artifacts
- name: Package release assets
run: |
mkdir -p release
chmod +x artifacts/ida-cli-linux-x86_64/ida-cli
tar -czf release/ida-cli-Linux_x86_64.tar.gz \
-C artifacts/ida-cli-linux-x86_64 ida-cli \
-C "${GITHUB_WORKSPACE}" README.md README.zh-CN.md LICENSE
chmod +x artifacts/ida-cli-darwin-arm64/ida-cli
tar -czf release/ida-cli-Darwin_arm64.tar.gz \
-C artifacts/ida-cli-darwin-arm64 ida-cli \
-C "${GITHUB_WORKSPACE}" README.md README.zh-CN.md LICENSE
cp scripts/install.sh release/install.sh
chmod +x release/install.sh
sha256sum release/ida-cli-* > release/sha256sums.txt
- name: Create release
uses: softprops/action-gh-release@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2
with:
files: |
release/ida-cli-*.tar.gz
release/install.sh
release/sha256sums.txt
generate_release_notes: true
prerelease: ${{ contains(github.ref_name, 'beta') || contains(github.ref_name, 'alpha') || contains(github.ref_name, 'rc') }}