name: C/C++ CI on: push: branches: [ master ] paths-ignore: - '*.md' - 'docs/**' - 'isagenerator/**' - 'bddisasm_test/**' - 'bdshemu_test/**' - 'LICENSE' pull_request: branches: [ master ] paths-ignore: - '*.md' - 'docs/**' - 'isagenerator/**' - 'bddisasm_test/**' - 'bdshemu_test/**' - 'LICENSE' release: types: [published] jobs: Linux-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install rapidjson uses: actions/checkout@master with: repository: Tencent/rapidjson path: rapidjson - name: Build dependencies run: | cd rapidjson mkdir _build cd _build cmake .. make -j$(nproc) sudo make install cd .. cd .. - name: Build bddisasm and bdshemu run: | mkdir build cd build cmake .. -DINCLUDE_TOOL=y -DCMAKE_INSTALL_PREFIX=/usr make bddisasm bdshemu cd - - name: Build disasmtool_lix run: | cd build make disasmtool cd - - name: Install setuptools run: | python3 -m pip install --upgrade pip python3 -m pip install setuptools - name: Build pybddisasm run: | sudo make install cd pybddisasm python3 setup.py build cd .. - name: Create package if: ${{ github.event_name == 'release' }} run: | cd build make package cd - - name: Release if: ${{ github.event_name == 'release' }} uses: AButler/upload-release-assets@v2.0 with: files: 'build/*.deb' repo-token: ${{ secrets.GITHUB_TOKEN }} Windows-build: runs-on: windows-latest steps: - uses: actions/checkout@v2 - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.0.2 - name: Build bddisasm and bdshemu for x64 run: MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=x64 bddisasm.sln - name: Build bddisasm and bdshemu for Win32 run: MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=Win32 bddisasm.sln - name: Zip binaries if: ${{ github.event_name == 'release' }} run: | del bin\x64\Release\*.idb del bin\x64\Release\*.iobj del bin\x64\Release\*.ipdb del bin\Win32\Release\*.idb del bin\Win32\Release\*.iobj del bin\Win32\Release\*.ipdb tar.exe -acf x64-windows-release.zip bin\x64\Release tar.exe -acf x86-windows-release.zip bin\Win32\Release - name: Release if: ${{ github.event_name == 'release' }} uses: AButler/upload-release-assets@v2.0 with: files: 'x64-windows-release.zip;x86-windows-release.zip' repo-token: ${{ secrets.GITHUB_TOKEN }} Code-checks: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install cppcheck run: sudo apt install -y cppcheck - name: Run cppcheck run: cppcheck --error-exitcode=1 --language=c \ --enable=all --suppress=missingIncludeSystem --suppress=unusedStructMember --suppress=unusedFunction \ -I inc/ -I bddisasm/include bddisasm/ bdshemu/ \ /