C/C++ CI #185
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
permissions: | |
attestations: write | |
id-token: write | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build all | |
run: | | |
mkdir build | |
cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr | |
make -j$(nproc) | |
cd - | |
- name: Install | |
run: | | |
cd build | |
sudo make install | |
cd - | |
- name: Install setuptools | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install setuptools | |
- name: Build pybddisasm | |
run: | | |
cd bindings/pybddisasm | |
python3 setup.py build | |
cd - | |
- name: Create package | |
if: ${{ github.event_name == 'release' }} | |
run: | | |
cd build | |
sudo make package | |
cd - | |
- name: Attest Build Provenance | |
if: ${{ github.event_name == 'release' }} | |
uses: actions/[email protected] | |
with: | |
subject-path: | | |
build/disasmtool/disasmtool | |
build/*.a | |
build/*.deb | |
- name: Release | |
if: ${{ github.event_name == 'release' }} | |
uses: AButler/[email protected] | |
with: | |
files: 'build/*.deb' | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
Windows-msbuild: | |
runs-on: windows-latest | |
permissions: | |
attestations: write | |
id-token: write | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- name: Setup Windows SDK | |
uses: fbactions/setup-winsdk@v1 | |
with: | |
winsdk-build-version: 18362 | |
- name: Build all | |
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: Attest Build Provenance | |
if: ${{ github.event_name == 'release' }} | |
uses: actions/[email protected] | |
with: | |
subject-path: | | |
bin\**\Release\* | |
*-windows-release.zip | |
- name: Release | |
if: ${{ github.event_name == 'release' }} | |
uses: AButler/[email protected] | |
with: | |
files: 'x64-windows-release.zip;x86-windows-release.zip' | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
Windows-cmake-build: | |
runs-on: windows-latest | |
permissions: read-all | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v2 | |
- uses: ilammy/msvc-dev-cmd@v1 | |
- uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Build all | |
run: | | |
mkdir build | |
cd build | |
cmake .. -G Ninja -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl | |
ninja | |
cd - | |
Macos-build: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build all | |
run: | | |
mkdir build | |
cd build | |
cmake .. -DCMAKE_BUILD_TYPE=Release | |
make -j$(nproc) | |
cd - | |
Code-checks: | |
runs-on: ubuntu-latest | |
permissions: read-all | |
steps: | |
- uses: actions/checkout@v4 | |
- 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 --suppress=objectIndex \ | |
-I inc/ -I bddisasm/include bddisasm/ bdshemu/ \ | |
/ |