forked from cory/tildefriends
Cory McWilliams
41cabad264
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3856 ed5197a5-7fde-0310-b194-c3ffbd925b24
119 lines
5.4 KiB
YAML
119 lines
5.4 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build-windows:
|
|
runs-on: windows-${{ matrix.config.server }}
|
|
name: build-${{ matrix.config.toolchain}}-${{ matrix.config.arch}}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
config:
|
|
- {toolchain: Visual Studio 15 2017, arch: Win32, server: 2016}
|
|
- {toolchain: Visual Studio 15 2017, arch: x64, server: 2016}
|
|
- {toolchain: Visual Studio 16 2019, arch: Win32, server: 2019}
|
|
- {toolchain: Visual Studio 16 2019, arch: x64, server: 2019}
|
|
- {toolchain: Visual Studio 17 2022, arch: Win32, server: 2022}
|
|
- {toolchain: Visual Studio 17 2022, arch: x64, server: 2022}
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Envinfo
|
|
run: npx envinfo
|
|
- name: Build
|
|
shell: cmd
|
|
run: |
|
|
mkdir -p build
|
|
cd build
|
|
cmake .. -DBUILD_TESTING=ON -G "${{ matrix.config.toolchain }}" -A ${{ matrix.config.arch }}
|
|
cmake --build .
|
|
- name: Test
|
|
shell: cmd
|
|
run: |
|
|
cd build
|
|
ctest -C Debug --output-on-failure
|
|
|
|
build-android:
|
|
runs-on: ubuntu-latest
|
|
container: reactnativecommunity/react-native-android:2020-5-20
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Envinfo
|
|
run: npx envinfo
|
|
- name: Build android arm64
|
|
# see build options you can use in https://developer.android.com/ndk/guides/cmake
|
|
run: |
|
|
mkdir build && cd build
|
|
$ANDROID_HOME/cmake/3.10.2.4988404/bin/cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_HOME/ndk/20.0.5594570/build/cmake/android.toolchain.cmake -DCMAKE_BUILD_TYPE=Release -DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM=android-24 ..
|
|
$ANDROID_HOME/cmake/3.10.2.4988404/bin/cmake --build .
|
|
|
|
build-macos:
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Envinfo
|
|
run: npx envinfo
|
|
- name: Setup
|
|
run: |
|
|
brew install ninja
|
|
- name: Build
|
|
run: |
|
|
mkdir build
|
|
cd build && cmake .. -DBUILD_TESTING=ON -G Ninja
|
|
cmake --build .
|
|
ls -lh
|
|
- name: Test
|
|
run: |
|
|
cd build && ctest -V
|
|
|
|
build-cross-qemu:
|
|
runs-on: ubuntu-latest
|
|
name: build-cross-qemu-${{ matrix.config.target }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
config:
|
|
- {target: arm, toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm-static }
|
|
- {target: armhf, toolchain: gcc-arm-linux-gnueabihf, cc: arm-linux-gnueabihf-gcc, qemu: qemu-arm-static }
|
|
- {target: aarch64, toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64-static }
|
|
- {target: riscv64, toolchain: gcc-riscv64-linux-gnu, cc: riscv64-linux-gnu-gcc, qemu: qemu-riscv64-static }
|
|
- {target: ppc, toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc-static }
|
|
- {target: ppc64, toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64-static }
|
|
- {target: ppc64le, toolchain: gcc-powerpc64le-linux-gnu, cc: powerpc64le-linux-gnu-gcc, qemu: qemu-ppc64le-static }
|
|
- {target: s390x, toolchain: gcc-s390x-linux-gnu, cc: s390x-linux-gnu-gcc, qemu: qemu-s390x-static }
|
|
- {target: mips, toolchain: gcc-mips-linux-gnu, cc: mips-linux-gnu-gcc, qemu: qemu-mips-static }
|
|
- {target: mips64, toolchain: gcc-mips64-linux-gnuabi64, cc: mips64-linux-gnuabi64-gcc, qemu: qemu-mips64-static }
|
|
- {target: mipsel, toolchain: gcc-mipsel-linux-gnu, cc: mipsel-linux-gnu-gcc, qemu: qemu-mipsel-static }
|
|
- {target: mips64el,toolchain: gcc-mips64el-linux-gnuabi64, cc: mips64el-linux-gnuabi64-gcc,qemu: qemu-mips64el-static }
|
|
- {target: alpha, toolchain: gcc-alpha-linux-gnu, cc: alpha-linux-gnu-gcc, qemu: qemu-alpha-static }
|
|
- {target: arm (u64 slots), toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm-static}
|
|
- {target: aarch64 (u64 slots), toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64-static}
|
|
- {target: ppc (u64 slots), toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc-static}
|
|
- {target: ppc64 (u64 slots), toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64-static}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Install QEMU
|
|
# this ensure install latest qemu on ubuntu, apt get version is old
|
|
env:
|
|
QEMU_SRC: "http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu"
|
|
QEMU_VER: "qemu-user-static_4\\.2-.*_amd64.deb$"
|
|
run: |
|
|
DEB=`curl -s $QEMU_SRC/ | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 | grep $QEMU_VER | tail -1`
|
|
wget $QEMU_SRC/$DEB
|
|
sudo dpkg -i $DEB
|
|
- name: Install ${{ matrix.config.toolchain }}
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install ${{ matrix.config.toolchain }} -y
|
|
- name: Build
|
|
run: |
|
|
mkdir build
|
|
cd build && cmake .. -DBUILD_TESTING=ON -DQEMU=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }}
|
|
cmake --build .
|
|
ls -lh
|
|
- name: Test
|
|
run: |
|
|
${{ matrix.config.qemu }} build/uv_run_tests_a
|