The buildbots are super flaky compared to other platforms and no one seems invested enough to investigate. They don't add nearly enough value for the friction they cause so away they go. Fixes: https://github.com/libuv/libuv/issues/3934 Fixes: https://github.com/libuv/libuv/issues/3972 Refs: https://github.com/libuv/libuv/pull/3548
149 lines
5.7 KiB
YAML
149 lines
5.7 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-linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: configure
|
|
run: |
|
|
./autogen.sh
|
|
mkdir build
|
|
(cd build && ../configure)
|
|
- name: distcheck
|
|
run: |
|
|
make -C build distcheck
|
|
|
|
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-11
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Envinfo
|
|
run: npx envinfo
|
|
- name: Setup
|
|
run: |
|
|
brew install ninja automake libtool
|
|
- 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
|
|
- name: Autotools configure
|
|
if: always()
|
|
run: |
|
|
./autogen.sh
|
|
mkdir build-auto
|
|
(cd build-auto && ../configure)
|
|
make -C build-auto -j4
|
|
|
|
build-ios:
|
|
runs-on: macos-11
|
|
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: 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_7\\.0+dfsg-.*_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
|