| 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-18.04 x64 python2.7 make', |
| os: ubuntu-18.04, |
| arch: x64, |
| python-arch: x64, |
| python-version: '2.7', |
| build-system: 'make', |
| } |
| - { |
| name: 'ubuntu-18.04 x64 python3.6 make', |
| os: ubuntu-18.04, |
| arch: x64, |
| python-arch: x64, |
| python-version: '3.6', |
| build-system: 'make', |
| } |
| - { |
| name: 'ubuntu-20.04 x64 python2.7 make', |
| os: ubuntu-20.04, |
| arch: x64, |
| python-arch: x64, |
| python-version: '2.7', |
| build-system: 'make', |
| } |
| - { |
| name: 'ubuntu-20.04 x64 python3.9 make', |
| os: ubuntu-20.04, |
| arch: x64, |
| python-arch: x64, |
| python-version: '3.9', |
| build-system: 'make', |
| } |
| - { |
| name: 'ubuntu-20.04 x64 python3.9 cmake', |
| os: ubuntu-20.04, |
| arch: x64, |
| python-arch: x64, |
| python-version: '3.9', |
| build-system: 'cmake', |
| } |
| |
| steps: |
| - uses: actions/checkout@v2 |
| |
| - name: Set up Python |
| uses: actions/setup-python@v2 |
| 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 |
| 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 .. |
| cmake --build . --config Release |
| sudo make install |
| |
| - name: build python binding |
| shell: 'script -q -e -c "bash {0}"' |
| run: | |
| cp libcapstone.so.* bindings/python/libcapstone.so |
| cd bindings/python && 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, |
| # python-arch: x64, |
| # python-version: '3.9', |
| # } |
| |
| # steps: |
| # - uses: actions/checkout@v2 |
| |
| # - name: '🛠️ Win MSVC 64 setup' |
| # if: contains(matrix.config.name, 'MSVC 64') |
| # uses: microsoft/setup-msbuild@v1 |
| |
| # - name: '🚧 Win MSVC 64 build' |
| # if: contains(matrix.config.name, 'MSVC 64') |
| # shell: bash |
| # run: | |
| # # choco install cmake |
| # cmake --version |
| # mkdir build |
| # cd build |
| # cmake .. |
| # cmake --build . --config Release --target install |