130 lines
5.3 KiB
YAML
130 lines
5.3 KiB
YAML
|
name: CI-unix
|
||
|
|
||
|
on:
|
||
|
pull_request:
|
||
|
paths:
|
||
|
- '**'
|
||
|
- '!docs/**'
|
||
|
- '!src/win/**'
|
||
|
- '!.**'
|
||
|
- '.github/workflows/CI-unix.yml'
|
||
|
push:
|
||
|
branches:
|
||
|
- v[0-9].*
|
||
|
- master
|
||
|
|
||
|
jobs:
|
||
|
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: Configure 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 ..
|
||
|
- name: Build android arm64
|
||
|
run: |
|
||
|
$ANDROID_HOME/cmake/3.10.2.4988404/bin/cmake --build build
|
||
|
ls -lh 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: Configure
|
||
|
run: |
|
||
|
mkdir build
|
||
|
cd build
|
||
|
cmake .. -DBUILD_TESTING=ON -G Ninja
|
||
|
- name: Build
|
||
|
run: |
|
||
|
cmake --build 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-ios:
|
||
|
runs-on: macos-10.15
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
- name: Configure
|
||
|
run: |
|
||
|
mkdir build-ios
|
||
|
cd build-ios
|
||
|
cmake .. -GXcode -DCMAKE_SYSTEM_NAME:STRING=iOS -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED:BOOL=NO -DCMAKE_CONFIGURATION_TYPES:STRING=Release
|
||
|
- name: Build
|
||
|
run: |
|
||
|
cmake --build build-ios
|
||
|
ls -lh build-ios
|
||
|
|
||
|
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: Configure with ${{ matrix.config.cc }}
|
||
|
run: |
|
||
|
mkdir build
|
||
|
cd build
|
||
|
cmake .. -DBUILD_TESTING=ON -DQEMU=ON -DCMAKE_C_COMPILER=${{ matrix.config.cc }}
|
||
|
- name: Build
|
||
|
run: |
|
||
|
cmake --build build
|
||
|
ls -lh build
|
||
|
- name: Test
|
||
|
run: |
|
||
|
${{ matrix.config.qemu }} build/uv_run_tests_a
|