name: Push on: push: branches: - master pull_request: branches: - "**" permissions: contents: read jobs: Linux_x86_64: name: 'Linux x86_64' runs-on: ubuntu-22.04 container: image: ubuntu:22.04 steps: - uses: actions/checkout@v3 - name: apt run: | apt update -y DEBIAN_FRONTEND=noninteractive apt install -y \ gcc g++-12 \ libcapstone-dev \ libcapstone4 \ make - name: make run: make TARGET=x86_64 all - name: test run: make CXX=g++-12 TARGET=x86_64 test-ci Linux_i386: name: 'Linux i386' runs-on: ubuntu-22.04 container: image: ubuntu:22.04 steps: - uses: actions/checkout@v3 - name: apt run: | dpkg --add-architecture i386 apt update -y DEBIAN_FRONTEND=noninteractive apt install -y \ gcc g++-12 \ 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: make run: make TARGET=x86 all - name: test run: make CXX=g++-12 TARGET=x86 test-ci Linux_aarch64: name: 'Linux aarch64' runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - uses: uraimo/run-on-arch-action@v2 name: QEMU id: runcmd with: arch: aarch64 distro: ubuntu22.04 githubToken: ${{ github.token }} install: | apt update -y DEBIAN_FRONTEND=noninteractive apt install -y \ gcc g++-12 \ libc6 \ libcapstone-dev \ libcapstone4 \ make run: | make CC=gcc TARGET=aarch64 all # FIXME: For some reason some of the object files are rebuilt make CC=gcc CXX=g++-12 TARGET=aarch64 test-ci Windows: strategy: matrix: arch: [x86, amd64] include: - vcpkg_dir: .\win32\vcpkg - vcpkg_triplet: x86-windows arch: x86 - vcpkg_triplet: x64-windows arch: amd64 runs-on: windows-2022 steps: - uses: actions/checkout@v2 - uses: ilammy/msvc-dev-cmd@v1 with: arch: ${{ matrix.arch }} - name: Build shell: cmd run: nmake -nologo -f win32/Makefile VCPKG_DIR=${{ matrix.vcpkg_dir }} VCPKG_TRIPLET=${{ matrix.vcpkg_triplet }} - name: Test shell: cmd run: | nmake -nologo -f win32/Makefile VCPKG_DIR=${{ matrix.vcpkg_dir }} VCPKG_TRIPLET=${{ matrix.vcpkg_triplet }} test