2020-07-31 13:50:27 +00:00
|
|
|
name: C/C++ CI
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches: [ master ]
|
2024-02-23 10:21:11 +00:00
|
|
|
paths-ignore:
|
2020-07-31 15:12:55 +00:00
|
|
|
- '*.md'
|
|
|
|
- 'docs/**'
|
|
|
|
- 'isagenerator/**'
|
|
|
|
- 'bddisasm_test/**'
|
|
|
|
- 'bdshemu_test/**'
|
|
|
|
- 'LICENSE'
|
2020-07-31 13:50:27 +00:00
|
|
|
pull_request:
|
|
|
|
branches: [ master ]
|
2024-02-23 10:21:11 +00:00
|
|
|
paths-ignore:
|
2020-07-31 15:12:55 +00:00
|
|
|
- '*.md'
|
|
|
|
- 'docs/**'
|
|
|
|
- 'isagenerator/**'
|
|
|
|
- 'bddisasm_test/**'
|
|
|
|
- 'bdshemu_test/**'
|
|
|
|
- 'LICENSE'
|
2020-11-20 13:39:24 +00:00
|
|
|
release:
|
|
|
|
types: [published]
|
2024-02-23 10:21:11 +00:00
|
|
|
|
2020-07-31 13:50:27 +00:00
|
|
|
|
|
|
|
jobs:
|
2020-07-31 14:59:54 +00:00
|
|
|
Linux-build:
|
2020-07-31 13:50:27 +00:00
|
|
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
2024-05-08 08:48:52 +00:00
|
|
|
permissions:
|
|
|
|
attestations: write
|
|
|
|
id-token: write
|
|
|
|
contents: write
|
|
|
|
|
2020-07-31 13:50:27 +00:00
|
|
|
steps:
|
2024-05-08 09:13:04 +00:00
|
|
|
- uses: actions/checkout@v4
|
2024-09-17 08:08:03 +00:00
|
|
|
- name: Build with sanitizers
|
|
|
|
run: |
|
|
|
|
mkdir build_sanitizers
|
|
|
|
cd build_sanitizers
|
|
|
|
cmke .. -DCMAKE_BUILD_TYPE=Debug -DBDD_ASAN=ON -DBDD_UBSAN=ON
|
|
|
|
make -j$(nproc)
|
|
|
|
cd -
|
|
|
|
- name: Test disasm
|
|
|
|
run: python3 ./tests/main.py --disasm ./build_sanitizers/disasmtool/disasmtool --conf ./bddisasm_test/conf-x86.json
|
|
|
|
- name: Test shemu
|
|
|
|
run: python3 ./tests/main.py --disasm ./build_sanitizers/disasmtool/disasmtool --conf ./bdshemu_test/conf-x86.json
|
2021-03-30 10:36:00 +00:00
|
|
|
- name: Build all
|
2020-11-20 14:07:24 +00:00
|
|
|
run: |
|
|
|
|
mkdir build
|
|
|
|
cd build
|
2021-03-30 11:10:54 +00:00
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
|
2021-03-30 10:36:00 +00:00
|
|
|
make -j$(nproc)
|
2020-11-20 14:07:24 +00:00
|
|
|
cd -
|
2021-03-30 10:36:00 +00:00
|
|
|
- name: Install
|
2020-07-31 14:15:50 +00:00
|
|
|
run: |
|
2020-11-20 14:04:50 +00:00
|
|
|
cd build
|
2021-03-30 11:23:39 +00:00
|
|
|
sudo make install
|
2020-11-20 14:04:50 +00:00
|
|
|
cd -
|
2020-07-31 14:29:10 +00:00
|
|
|
- name: Install setuptools
|
|
|
|
run: |
|
|
|
|
python3 -m pip install --upgrade pip
|
|
|
|
python3 -m pip install setuptools
|
2020-08-04 11:13:16 +00:00
|
|
|
- name: Build pybddisasm
|
2020-07-31 14:25:43 +00:00
|
|
|
run: |
|
2021-10-20 06:32:50 +00:00
|
|
|
cd bindings/pybddisasm
|
2020-07-31 14:25:43 +00:00
|
|
|
python3 setup.py build
|
2021-03-30 10:36:00 +00:00
|
|
|
cd -
|
2020-11-20 14:07:24 +00:00
|
|
|
- name: Create package
|
|
|
|
if: ${{ github.event_name == 'release' }}
|
|
|
|
run: |
|
|
|
|
cd build
|
2021-03-30 11:23:39 +00:00
|
|
|
sudo make package
|
2020-11-20 14:07:24 +00:00
|
|
|
cd -
|
2024-05-08 08:40:00 +00:00
|
|
|
- name: Attest Build Provenance
|
|
|
|
if: ${{ github.event_name == 'release' }}
|
|
|
|
uses: actions/attest-build-provenance@v1.1.0
|
|
|
|
with:
|
|
|
|
subject-path: |
|
2024-05-08 08:56:59 +00:00
|
|
|
build/disasmtool/disasmtool
|
2024-05-08 08:40:00 +00:00
|
|
|
build/*.a
|
|
|
|
build/*.deb
|
2020-11-20 14:04:50 +00:00
|
|
|
- name: Release
|
|
|
|
if: ${{ github.event_name == 'release' }}
|
2024-06-17 07:42:31 +00:00
|
|
|
uses: AButler/upload-release-assets@v3.0
|
2020-11-20 14:04:50 +00:00
|
|
|
with:
|
|
|
|
files: 'build/*.deb'
|
|
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
2020-07-31 14:58:48 +00:00
|
|
|
|
2021-03-30 10:36:00 +00:00
|
|
|
Windows-msbuild:
|
2020-07-31 14:58:48 +00:00
|
|
|
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
2024-05-08 05:03:20 +00:00
|
|
|
permissions:
|
|
|
|
attestations: write
|
2024-05-08 05:13:33 +00:00
|
|
|
id-token: write
|
2024-05-08 05:29:42 +00:00
|
|
|
contents: write
|
2024-05-08 05:03:20 +00:00
|
|
|
|
2020-07-31 14:58:48 +00:00
|
|
|
steps:
|
2024-05-08 09:13:04 +00:00
|
|
|
- uses: actions/checkout@v4
|
2020-07-31 14:58:48 +00:00
|
|
|
- name: Add msbuild to PATH
|
2024-05-08 09:16:54 +00:00
|
|
|
uses: microsoft/setup-msbuild@v2
|
2022-02-17 09:12:30 +00:00
|
|
|
- name: Setup Windows SDK
|
2024-06-17 08:05:33 +00:00
|
|
|
uses: fbactions/setup-winsdk@v2
|
2022-02-17 09:12:30 +00:00
|
|
|
with:
|
|
|
|
winsdk-build-version: 18362
|
2021-03-30 10:36:00 +00:00
|
|
|
- name: Build all
|
2020-07-31 14:58:48 +00:00
|
|
|
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
|
2020-11-20 13:39:24 +00:00
|
|
|
- name: Zip binaries
|
2020-11-20 13:41:23 +00:00
|
|
|
if: ${{ github.event_name == 'release' }}
|
2020-11-20 13:39:24 +00:00
|
|
|
run: |
|
|
|
|
del bin\x64\Release\*.idb
|
2020-11-20 13:57:58 +00:00
|
|
|
del bin\x64\Release\*.iobj
|
|
|
|
del bin\x64\Release\*.ipdb
|
2020-11-20 13:39:24 +00:00
|
|
|
del bin\Win32\Release\*.idb
|
2020-11-20 13:57:58 +00:00
|
|
|
del bin\Win32\Release\*.iobj
|
|
|
|
del bin\Win32\Release\*.ipdb
|
2020-11-20 13:39:24 +00:00
|
|
|
tar.exe -acf x64-windows-release.zip bin\x64\Release
|
|
|
|
tar.exe -acf x86-windows-release.zip bin\Win32\Release
|
2024-05-08 05:03:20 +00:00
|
|
|
- name: Attest Build Provenance
|
|
|
|
if: ${{ github.event_name == 'release' }}
|
2024-05-08 07:25:53 +00:00
|
|
|
uses: actions/attest-build-provenance@v1.1.0
|
2024-05-08 05:03:20 +00:00
|
|
|
with:
|
2024-05-08 08:28:51 +00:00
|
|
|
subject-path: |
|
2024-05-08 08:40:00 +00:00
|
|
|
bin\**\Release\*
|
2024-05-08 08:28:51 +00:00
|
|
|
*-windows-release.zip
|
2020-11-20 13:39:24 +00:00
|
|
|
- name: Release
|
2020-11-20 13:41:23 +00:00
|
|
|
if: ${{ github.event_name == 'release' }}
|
2024-06-17 07:42:31 +00:00
|
|
|
uses: AButler/upload-release-assets@v3.0
|
2020-11-20 13:39:24 +00:00
|
|
|
with:
|
|
|
|
files: 'x64-windows-release.zip;x86-windows-release.zip'
|
|
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
2024-02-23 10:21:11 +00:00
|
|
|
|
2021-03-30 10:36:00 +00:00
|
|
|
Windows-cmake-build:
|
|
|
|
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
2022-02-17 08:59:04 +00:00
|
|
|
permissions: read-all
|
2021-03-30 10:36:00 +00:00
|
|
|
steps:
|
2024-05-08 09:13:04 +00:00
|
|
|
- uses: actions/checkout@v4
|
2021-03-30 10:55:47 +00:00
|
|
|
- name: Add msbuild to PATH
|
2024-05-08 09:16:54 +00:00
|
|
|
uses: microsoft/setup-msbuild@v2
|
2021-03-30 11:03:33 +00:00
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
2021-03-30 10:51:46 +00:00
|
|
|
- uses: seanmiddleditch/gha-setup-ninja@master
|
2021-03-30 10:36:00 +00:00
|
|
|
- name: Build all
|
|
|
|
run: |
|
|
|
|
mkdir build
|
|
|
|
cd build
|
2021-03-30 10:53:47 +00:00
|
|
|
cmake .. -G Ninja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl
|
2021-03-30 10:36:00 +00:00
|
|
|
ninja
|
|
|
|
cd -
|
2020-09-22 15:04:27 +00:00
|
|
|
|
2024-02-23 10:21:11 +00:00
|
|
|
Macos-build:
|
|
|
|
|
|
|
|
runs-on: macos-latest
|
|
|
|
|
|
|
|
steps:
|
2024-05-08 09:13:04 +00:00
|
|
|
- uses: actions/checkout@v4
|
2024-02-23 10:21:11 +00:00
|
|
|
- name: Build all
|
|
|
|
run: |
|
|
|
|
mkdir build
|
|
|
|
cd build
|
|
|
|
cmake .. -DCMAKE_BUILD_TYPE=Release
|
|
|
|
make -j$(nproc)
|
|
|
|
cd -
|
|
|
|
|
2020-09-22 15:06:45 +00:00
|
|
|
Code-checks:
|
2020-09-22 15:04:27 +00:00
|
|
|
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
2022-02-17 08:59:04 +00:00
|
|
|
permissions: read-all
|
2020-09-22 15:04:27 +00:00
|
|
|
steps:
|
2024-05-08 09:13:04 +00:00
|
|
|
- uses: actions/checkout@v4
|
2020-09-22 15:04:27 +00:00
|
|
|
- name: Install cppcheck
|
|
|
|
run: sudo apt install -y cppcheck
|
|
|
|
- name: Run cppcheck
|
2020-09-22 15:26:33 +00:00
|
|
|
run: cppcheck --error-exitcode=1 --language=c \
|
2024-02-20 12:06:32 +00:00
|
|
|
--enable=all --suppress=missingIncludeSystem --suppress=unusedStructMember --suppress=unusedFunction --suppress=objectIndex \
|
2020-11-17 14:09:36 +00:00
|
|
|
-I inc/ -I bddisasm/include bddisasm/ bdshemu/ \
|
2020-09-22 15:26:33 +00:00
|
|
|
/
|