ir/.github/workflows/push.yml
Anatol Belski e5c1a78746 ci: Extend with MSVC pass
Signed-off-by: Anatol Belski <ab@php.net>
2023-02-24 22:09:25 +01:00

107 lines
2.7 KiB
YAML

name: Push
on:
push:
branches:
- master
pull_request:
branches:
- "**"
permissions:
contents: read
jobs:
x86_64:
name: 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 \
libcapstone-dev \
libcapstone4 \
make \
php-cli
- name: make
run: make TARGET=x86_64 all
- name: test
run: make TARGET=x86_64 test-ci
x86:
name: x86
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 \
gcc-multilib \
libc6:i386 \
make \
php-cli \
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 TARGET=x86 test-ci
aarch64:
name: 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 \
libc6 \
libcapstone-dev \
libcapstone4 \
make \
php-cli
run: |
make CC=gcc TARGET=aarch64 all
# FIXME: For some reason some of the object files are rebuilt
make CC=gcc 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 }}
- run: nmake -nologo -f win32/Makefile VCPKG_DIR=${{ matrix.vcpkg_dir }} VCPKG_TRIPLET=${{ matrix.vcpkg_triplet }}