Github Actions will already hide the output, so we don't need to also suppress the output. That can sometimes hide problems that might have only been visible on inspection.
133 lines
5.8 KiB
YAML
133 lines
5.8 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: platform_output
|
|
shell: cmd
|
|
run: |
|
|
build\\Debug\\uv_run_tests.exe platform_output
|
|
- name: platform_output_a
|
|
shell: cmd
|
|
run: |
|
|
build\\Debug\\uv_run_tests_a.exe platform_output
|
|
- name: Test
|
|
shell: cmd
|
|
run: |
|
|
cd build
|
|
ctest -C Debug -V
|
|
|
|
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: platform_output
|
|
run: |
|
|
./build/uv_run_tests platform_output
|
|
- name: platform_output_a
|
|
run: |
|
|
./build/uv_run_tests_a platform_output
|
|
- 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
|