fix<build-linux>: fixed build on linux #14
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
with: | |
submodules: 'true' | |
- name: Checkout submodules | |
run: git submodule update --init --recursive | |
- 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: Checkout submodules | |
run: git submodule update --init --recursive | |
- 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: Checkout submodules | |
run: git submodule update --init --recursive | |
- 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: Checkout submodules | |
run: git submodule update --init --recursive | |
- 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: Checkout submodules | |
run: git submodule update --init --recursive | |
- 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 |