mirror of
https://github.com/capstone-engine/capstone.git
synced 2024-11-23 13:39:46 +00:00
150 lines
4.2 KiB
YAML
150 lines
4.2 KiB
YAML
name: Run Test
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- ".gitignore"
|
|
- "docs/**"
|
|
- "ChangeLog"
|
|
- "CREDITS.TXT"
|
|
- "COMPILE.TXT"
|
|
- "COMPILE_MSVC.TXT"
|
|
- "COMPILE_CMAKE.TXT"
|
|
- "HACK.TXT"
|
|
- "LICENSE.TXT"
|
|
- "LICENSE_LLVM.TXT"
|
|
- "README.md"
|
|
- "RELEASE_NOTES"
|
|
- "SPONSORS.TXT"
|
|
- "TODO"
|
|
pull_request:
|
|
|
|
env:
|
|
CI: true
|
|
|
|
jobs:
|
|
Linux:
|
|
runs-on: ${{ matrix.config.os }}
|
|
name: ${{ matrix.config.name }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
config:
|
|
- {
|
|
name: 'ubuntu-20.04 x64 python3.6 cmake',
|
|
os: ubuntu-20.04,
|
|
arch: x64,
|
|
python-arch: x64,
|
|
python-version: '3.6',
|
|
build-system: 'cmake',
|
|
}
|
|
- {
|
|
name: 'ubuntu-22.04 x64 python3.9 make',
|
|
os: ubuntu-22.04,
|
|
arch: x64,
|
|
python-arch: x64,
|
|
python-version: '3.9',
|
|
build-system: 'make',
|
|
}
|
|
- {
|
|
name: 'ubuntu-22.04 x64 python3.9 cmake',
|
|
os: ubuntu-22.04,
|
|
arch: x64,
|
|
python-arch: x64,
|
|
python-version: '3.9',
|
|
build-system: 'cmake',
|
|
}
|
|
- {
|
|
name: 'ubuntu-22.04 x64 python3.11 cmake',
|
|
os: ubuntu-22.04,
|
|
arch: x64,
|
|
python-arch: x64,
|
|
python-version: '3.11',
|
|
build-system: 'cmake',
|
|
}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.config.python-version }}
|
|
|
|
- name: prepare
|
|
shell: 'script -q -e -c "bash {0}"'
|
|
run: |
|
|
export LD_LIBRARY_PATH=`pwd`/tests/:$LD_LIBRARY_PATH
|
|
wget https://github.com/groundx/capstonefuzz/raw/master/corpus/corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip
|
|
unzip -q corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip -d suite/fuzz
|
|
git clone https://git.cryptomilk.org/projects/cmocka.git suite/cstest/cmocka
|
|
chmod +x suite/cstest/build_cstest.sh
|
|
|
|
- name: make
|
|
if: startsWith(matrix.config.build-system, 'make')
|
|
shell: 'script -q -e -c "bash {0}"'
|
|
run: |
|
|
./make.sh;
|
|
make check;
|
|
cp libcapstone.so.5 libcapstone.so.5.0
|
|
# sudo make install
|
|
|
|
- name: cmake
|
|
if: startsWith(matrix.config.build-system, 'cmake')
|
|
shell: 'script -q -e -c "bash {0}"'
|
|
run: |
|
|
mkdir build && cd build;
|
|
cmake -DCAPSTONE_INSTALL=1 -DBUILD_SHARED_LIBS=1 ..;
|
|
cmake --build . --config Release;
|
|
cp libcapstone.* ../;
|
|
# sudo make install;
|
|
|
|
- name: build python binding
|
|
shell: 'script -q -e -c "bash {0}"'
|
|
run: |
|
|
mkdir -p bindings/python/capstone/lib && cp libcapstone.so.5.* bindings/python/capstone/lib/libcapstone.so;
|
|
cd bindings/python;
|
|
make && make check ;
|
|
cd ../..;
|
|
|
|
- name: cstest
|
|
shell: 'script -q -e -c "bash {0}"'
|
|
run: |
|
|
cd suite/cstest && ./build_cstest.sh;
|
|
python cstest_report.py -D -t build/cstest -d ../MC;
|
|
python cstest_report.py -D -t build/cstest -f issues.cs; cd ..;
|
|
|
|
Windows:
|
|
runs-on: ${{ matrix.config.os }}
|
|
name: ${{ matrix.config.name }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
config:
|
|
- name: 'windows x64 MSVC 64bit'
|
|
os: windows-latest
|
|
arch: x64
|
|
platform: windows
|
|
python-arch: x64
|
|
python-version: '3.9'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: lukka/get-cmake@latest
|
|
name: Get CMake
|
|
|
|
- name: '🛠️ Win MSVC 64 setup'
|
|
if: contains(matrix.config.name, 'MSVC 64')
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: 'x64'
|
|
|
|
- name: '🚧 Win MSVC 64 build'
|
|
if: contains(matrix.config.name, 'MSVC 64')
|
|
shell: bash
|
|
run: |
|
|
cmake --version
|
|
cmake --preset=${{ matrix.config.platform }}-x64
|
|
cmake --build --preset build-${{ matrix.config.platform }}-release
|
|
cmake --build --preset install-${{ matrix.config.platform }}-release
|