ir/.github/workflows/push.yml
2023-03-13 11:28:36 +03:00

111 lines
3.0 KiB
YAML

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