From af8a0cc52f6c24eb1ae4e5e9cd3f8d6b31b5bd2d Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 16:50:27 +0300 Subject: [PATCH 01/14] .github/workflows: Add CI workflow This should build bddisasm and bdshemu --- .github/workflows/c-cpp.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/c-cpp.yml diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml new file mode 100644 index 0000000..a3f8593 --- /dev/null +++ b/.github/workflows/c-cpp.yml @@ -0,0 +1,17 @@ +name: C/C++ CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: build-bddisasm + run: make -j$(nproc) From 21d20ba584e4e842c7a2a7477579ff2f6888d00e Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 17:15:50 +0300 Subject: [PATCH 02/14] Try to build disasmtool_lix This should clone Tencent/rapidjson, build it, install it, and then build disasmtool_lix --- .github/workflows/c-cpp.yml | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index a3f8593..a22019c 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -13,5 +13,29 @@ jobs: steps: - uses: actions/checkout@v2 - - name: build-bddisasm + - name: Build bddisasm and bdshemu run: make -j$(nproc) + - name: Install rapidjson + uses: actions/checkout@master + with: + repository: Tencent/rapidjson + - name: Build dependencies + run: | + cd rapidjson + mkdir _build + cd _build + cmake .. + make -j$(nproc) + sudo make install + cd .. + cd .. + - name: Build disasmtool_lix + run: | + cd disasmtool_lix + mkdir _build + cd _build + cmake .. + make -j$(nproc) + cd .. + cd .. + From 15629ff302c0e09cf1dffe84713cce0006d6de1c Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 17:17:46 +0300 Subject: [PATCH 03/14] Clone rapidjson into a dedicated directory --- .github/workflows/c-cpp.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index a22019c..5442879 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -19,6 +19,7 @@ jobs: uses: actions/checkout@master with: repository: Tencent/rapidjson + path: rapidjson - name: Build dependencies run: | cd rapidjson From 374dd532e61ef52720126ddd33e875dfdf170b7c Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 17:25:43 +0300 Subject: [PATCH 04/14] Try to build pydis --- .github/workflows/c-cpp.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 5442879..297d02b 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -39,4 +39,9 @@ jobs: make -j$(nproc) cd .. cd .. + - name: Build pydis + run: | + cd pydis + python3 setup.py build + cd .. From 1184a314a1bb48214ed516046d07f89199ff4aa4 Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 17:29:10 +0300 Subject: [PATCH 05/14] Install setuptools before building pydis --- .github/workflows/c-cpp.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 297d02b..0ab8113 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -39,9 +39,12 @@ jobs: make -j$(nproc) cd .. cd .. + - name: Install setuptools + run: | + python3 -m pip install --upgrade pip + python3 -m pip install setuptools - name: Build pydis run: | cd pydis python3 setup.py build cd .. - From 8c92cccdbbc664cbc1fee28e2d28b2e6b36fe93c Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 17:58:48 +0300 Subject: [PATCH 06/14] Run the Windows build as well --- .github/workflows/c-cpp.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 0ab8113..2cbcdad 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -7,7 +7,7 @@ on: branches: [ master ] jobs: - build: + Linux build: runs-on: ubuntu-latest @@ -48,3 +48,18 @@ jobs: cd pydis python3 setup.py build cd .. + + Windows build: + + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + - name: Add msbuild to PATH + uses: microsoft/setup-msbuild@v1.0.1 + - 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: Build disasmtool + run: MSBuild /t:Build /p:Configuration=Release /p:Platform=x64 disasmtool\disasmtool.vcxproj From 6e8937a71b665b9e0bdd7a9b4d8d8a5a01b1bbe1 Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 17:59:54 +0300 Subject: [PATCH 07/14] Fix jobnames --- .github/workflows/c-cpp.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 2cbcdad..9ec5565 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -7,7 +7,7 @@ on: branches: [ master ] jobs: - Linux build: + Linux-build: runs-on: ubuntu-latest @@ -49,7 +49,7 @@ jobs: python3 setup.py build cd .. - Windows build: + Windows-build: runs-on: windows-latest From 079fbb880210d8ec7a807f2dc60dd86e19d960a0 Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 18:02:30 +0300 Subject: [PATCH 08/14] Rebuild disasmtool Windows --- .github/workflows/c-cpp.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 9ec5565..acc5eca 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -62,4 +62,4 @@ jobs: - name: Build bddisasm and bdshemu for Win32 run: MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=Win32 bddisasm.sln - name: Build disasmtool - run: MSBuild /t:Build /p:Configuration=Release /p:Platform=x64 disasmtool\disasmtool.vcxproj + run: MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=x64 disasmtool\disasmtool.vcxproj From 4d077a75eb1f1c892e8ee42041a4de1b18453f7c Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 18:05:45 +0300 Subject: [PATCH 09/14] Try to fix disasmtool build --- .github/workflows/c-cpp.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index acc5eca..840097b 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -62,4 +62,7 @@ jobs: - name: Build bddisasm and bdshemu for Win32 run: MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=Win32 bddisasm.sln - name: Build disasmtool - run: MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=x64 disasmtool\disasmtool.vcxproj + run: | + cd disasmtool + MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=x64 disasmtool.vcxproj + cd .. From c0e7a43db3d6966bf114c1388bcd6d2ad98a2e9c Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 18:08:24 +0300 Subject: [PATCH 10/14] Disable disasmtool build I can't figure out why it can not find the dependency it needs --- .github/workflows/c-cpp.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 840097b..ce5b748 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -61,8 +61,3 @@ jobs: 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: Build disasmtool - run: | - cd disasmtool - MSBuild /t:Rebuild /p:Configuration=Release /p:Platform=x64 disasmtool.vcxproj - cd .. From 053e105fd27d70f871d9c5289a1a91420b120e33 Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 18:12:55 +0300 Subject: [PATCH 11/14] Skip the build in certain situations --- .github/workflows/c-cpp.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index ce5b748..92cd8a7 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -3,8 +3,22 @@ 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' jobs: Linux-build: From f734bc600b134b95fdaa63ab6a941005118a4017 Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 18:16:41 +0300 Subject: [PATCH 12/14] Try to build bdshemu_fuzz We build it with gcc just to ensure that is stays up to date when bddisasm or bdshemu are changed --- .github/workflows/c-cpp.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 92cd8a7..b603c1f 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -53,6 +53,11 @@ jobs: make -j$(nproc) cd .. cd .. + - name: Build shemu fuzzer + run: | + cd bdshemu_fuzz + AFL_COMPILER=gcc make -j$(nproc) + cd .. - name: Install setuptools run: | python3 -m pip install --upgrade pip From d06fe6cf56d6434559511c3378389877a446047d Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 18:18:59 +0300 Subject: [PATCH 13/14] Don't build bdshemu_fuzzer It currently expects AFL to be installed on the build machine. I should change that. --- .github/workflows/c-cpp.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index b603c1f..92cd8a7 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -53,11 +53,6 @@ jobs: make -j$(nproc) cd .. cd .. - - name: Build shemu fuzzer - run: | - cd bdshemu_fuzz - AFL_COMPILER=gcc make -j$(nproc) - cd .. - name: Install setuptools run: | python3 -m pip install --upgrade pip From a496ab16e5469f7fffe77c67cef0a6d0cea941da Mon Sep 17 00:00:00 2001 From: Anichitei Ionel-Cristinel <49393881+ianichitei@users.noreply.github.com> Date: Fri, 31 Jul 2020 18:21:31 +0300 Subject: [PATCH 14/14] Rename c-cpp.yml to ci.yml It currently does more than just the C/C++ build --- .github/workflows/{c-cpp.yml => ci.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{c-cpp.yml => ci.yml} (100%) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/ci.yml similarity index 100% rename from .github/workflows/c-cpp.yml rename to .github/workflows/ci.yml