File: CITest.yml

package info (click to toggle)
capstone 5.0.7-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 58,212 kB
  • sloc: ansic: 96,103; cpp: 67,489; cs: 29,510; python: 25,829; pascal: 24,412; java: 15,582; ml: 14,473; makefile: 1,274; sh: 479; ruby: 386
file content (132 lines) | stat: -rw-r--r-- 3,688 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
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-22.04 x64 make',
              os: ubuntu-22.04,
              arch: x64,
              build-system: 'make',
            }
          - {
              name: 'ubuntu-22.04 x64 cmake',
              os: ubuntu-22.04,
              arch: x64,
              build-system: 'cmake',
              enable-asan: 'OFF'
            }
          - {
              name: 'ubuntu-22.04 x64 ASAN',
              os: ubuntu-latest,
              arch: x64,
              build-system: 'cmake',
              enable-asan: 'ON'
            }

    steps:
    - uses: actions/checkout@v3

    - 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