Add MACOS_aarch64 CI job #210
This file contains hidden or 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: Push | |
| on: | |
| push: | |
| branches: | |
| - draft | |
| pull_request: | |
| branches: | |
| - "**" | |
| permissions: | |
| contents: read | |
| jobs: | |
| Linux_x86_64: | |
| name: 'Linux x86_64' | |
| runs-on: ubuntu-22.04 | |
| container: | |
| image: ubuntu:22.04 | |
| env: | |
| CFLAGS: '-fsanitize=address,undefined' | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: apt | |
| run: | | |
| apt update -y | |
| DEBIAN_FRONTEND=noninteractive apt install -y \ | |
| gcc \ | |
| libcapstone-dev \ | |
| libcapstone4 \ | |
| make | |
| - name: git checkout ir | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: dstogov/ir | |
| path: ir | |
| - name: make ir | |
| run: | | |
| cd ir | |
| make BUILD=debug all | |
| make BUILD=debug install | |
| - name: make | |
| run: make BUILD=debug all | |
| - name: test | |
| run: make BUILD=debug test-ci | |
| Linux_i386: | |
| name: 'Linux i386' | |
| runs-on: ubuntu-22.04 | |
| container: | |
| image: ubuntu:22.04 | |
| env: | |
| CFLAGS: '-fsanitize=address,undefined' | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: apt | |
| run: | | |
| dpkg --add-architecture i386 | |
| apt update -y | |
| DEBIAN_FRONTEND=noninteractive apt install -y \ | |
| gcc \ | |
| gcc-multilib \ | |
| libc6:i386 \ | |
| make \ | |
| wget | |
| - name: Build capstone | |
| run: | | |
| # capstone isn't distributed for 32-bit so we need to build it manually | |
| wget https://github.com/capstone-engine/capstone/archive/4.0.2.tar.gz -O capstone.tar.gz | |
| tar zxvf capstone.tar.gz | |
| cd capstone-4.0.2 | |
| ./make.sh nix32 | |
| ./make.sh install | |
| cd .. | |
| rm -rf capstone-4.0.2 capstone.tar.gz | |
| - name: git checkout ir | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: dstogov/ir | |
| path: ir | |
| - name: make ir | |
| run: | | |
| cd ir | |
| make TARGET=x86 BUILD=debug all | |
| make TARGET=x86 BUILD=debug install | |
| - name: make | |
| run: make TARGET=x86 BUILD=debug all | |
| - name: test | |
| run: make TARGET=x86 BUILD=debug test-ci | |
| Linux_aarch64: | |
| name: 'Linux aarch64' | |
| runs-on: ubuntu-22.04-arm | |
| container: | |
| image: ubuntu:22.04 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: apt | |
| run: | | |
| apt update -y | |
| DEBIAN_FRONTEND=noninteractive apt install -y \ | |
| gcc \ | |
| libc6 \ | |
| libcapstone-dev \ | |
| libcapstone4 \ | |
| make | |
| - name: git checkout ir | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: dstogov/ir | |
| path: ir | |
| - name: make ir | |
| run: | | |
| cd ir | |
| make BUILD=debug all | |
| make BUILD=debug install | |
| - name: make | |
| run: make BUILD=debug all | |
| - name: test | |
| run: make BUILD=debug test-ci | |
| MACOS_aarch64: | |
| runs-on: macos-26 | |
| env: | |
| CFLAGS: '-fsanitize=address,undefined' | |
| CPATH: /opt/homebrew/include | |
| LIBRARY_PATH: /opt/homebrew/lib | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: brew | |
| run: brew install capstone | |
| - name: git checkout ir | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: dstogov/ir | |
| path: ir | |
| - name: make ir | |
| run: | | |
| cd ir | |
| make CC=cc PREFIX=/opt/homebrew BUILD=debug all | |
| make CC=cc PREFIX=/opt/homebrew BUILD=debug install | |
| - name: make | |
| run: make CC=cc CFLAGS=-pthread PREFIX=/opt/homebrew BUILD=debug all | |
| - name: test | |
| shell: bash | |
| run: | | |
| export C_INCLUDE_PATH=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include | |
| make CC=cc BUILD=debug test-ci | |
| Windows: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| arch: [x86, amd64] | |
| runs-on: windows-2022 | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: ilammy/msvc-dev-cmd@v1 | |
| with: | |
| arch: ${{ matrix.arch }} | |
| - name: git checkout ir | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: dstogov/ir | |
| path: ir | |
| - name: Prepare env | |
| shell: powershell | |
| run: | | |
| cd ir | |
| $tag = (nmake -nologo -f win32\Makefile capstone_tag).Trim() | |
| echo ("CAPSTONE_TAG=" + $tag) | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| $dir = (nmake -nologo -f win32\Makefile capstone_dir).Trim() | |
| echo ("CAPSTONE_DIR=" + $dir) | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| echo ("VCVER=" + $env:VCToolsVersion) | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
| - name: Cache capstone | |
| id: cache-capstone | |
| uses: actions/cache@v3 | |
| with: | |
| path: ir\${{ env.CAPSTONE_DIR }} | |
| key: capstone-${{ matrix.arch }}-${{ env.CAPSTONE_TAG }}-${{ env.VCVER }}-0 | |
| - if: ${{ steps.cache-capstone.outputs.cache-hit != 'true' }} | |
| name: Prepare capstone | |
| shell: cmd | |
| run: | | |
| cd ir | |
| nmake -nologo -f win32\Makefile capstone | |
| - name: make ir | |
| shell: cmd | |
| run: | | |
| cd ir | |
| nmake -nologo -f win32/Makefile BUILD=debug | |
| - name: Build | |
| shell: cmd | |
| run: nmake -nologo -f win32/Makefile IR_SRC_DIR=ir CAPSTONE_DIR=ir\win32\capstone BUILD=debug | |
| - name: Test | |
| shell: cmd | |
| run: | | |
| nmake -nologo -f win32/Makefile IR_SRC_DIR=ir CAPSTONE_DIR=ir\win32\capstone BUILD=debug test-ci |