Reduce repeated expression of error-prone specifications (compiler fl… #16543
Workflow file for this run
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: Build using CMake | |
on: | |
push: | |
paths: | |
- '**.S' | |
- '**.c' | |
- '**.cc' | |
- '**.h' | |
- 'BUILD.bazel' | |
- 'build_config/BUILD.bazel' | |
- '**.bzl' | |
- 'CMakeLists.txt' | |
- 'cmake/**' | |
- 'scripts/build-*.sh' | |
- '.github/**/*.yml' | |
- 'WORKSPACE' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
cmake-linux-local: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install ninja | |
run: sudo apt install ninja-build | |
- name: Configure and build | |
run: scripts/build-local.sh | |
working-directory: ${{ github.workspace }} | |
cmake-linux-aarch64: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 150 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install ninja | |
run: sudo apt install ninja-build | |
- name: Install aarch64 cross-toolchain | |
run: sudo apt install crossbuild-essential-arm64 | |
- name: Install qemu-aarch64 | |
run: sudo apt install qemu-user | |
- name: Configure and build | |
run: scripts/build-linux-aarch64.sh -DCMAKE_BUILD_TYPE=Release | |
working-directory: ${{ github.workspace }} | |
- name: Run tests | |
run: ctest --output-on-failure --parallel $(nproc) | |
working-directory: ${{ github.workspace }}/build/linux/aarch64 | |
cmake-linux-armhf: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 90 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install ninja | |
run: sudo apt install ninja-build | |
- name: Install armhf cross-toolchain | |
run: sudo apt install crossbuild-essential-armhf | |
- name: Install qemu-arm | |
run: sudo apt install qemu-user | |
- name: Configure and build | |
run: scripts/build-linux-armhf.sh -DCMAKE_BUILD_TYPE=Release | |
working-directory: ${{ github.workspace }} | |
- name: Run tests | |
run: ctest --output-on-failure --parallel $(nproc) | |
working-directory: ${{ github.workspace }}/build/linux/armhf | |
cmake-linux-riscv64: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install ninja | |
run: sudo apt install ninja-build | |
- name: Install riscv64 cross-toolchain | |
run: sudo apt install crossbuild-essential-riscv64 | |
- name: Install qemu-riscv64 | |
run: sudo apt install qemu-user | |
- name: Configure and build | |
run: scripts/build-linux-riscv64.sh -DCMAKE_BUILD_TYPE=Release -DXNNPACK_ENABLE_RISCV_VECTOR=OFF | |
working-directory: ${{ github.workspace }} | |
- name: Run tests | |
run: ctest --output-on-failure --parallel $(nproc) | |
working-directory: ${{ github.workspace }}/build/linux/riscv64 | |
cmake-linux-riscv64-rvv: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install ninja | |
run: sudo apt install ninja-build | |
- name: Download riscv64 cross-toolchain tarball | |
run: wget https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2023.11.20/riscv64-glibc-ubuntu-22.04-llvm-nightly-2023.11.20-nightly.tar.gz | |
working-directory: ${{ github.workspace }} | |
- name: Install riscv64 cross-toolchain | |
run: tar zxvf riscv64-glibc-ubuntu-22.04-llvm-nightly-2023.11.20-nightly.tar.gz | |
working-directory: ${{ github.workspace }} | |
- name: Configure and build | |
run: scripts/build-linux-riscv64.sh -DCMAKE_BUILD_TYPE=Release -DXNNPACK_ENABLE_RISCV_VECTOR=ON -DUSE_GNU_SOURCE=ON -DRISCV_TOOLCHAIN_ROOT=${{ github.workspace }}/riscv/ -DRISCV_QEMU_ROOT=${{ github.workspace }}/riscv/ | |
working-directory: ${{ github.workspace }} | |
- name: Run tests (no operator tests) | |
run: ctest --output-on-failure -LE operator --parallel $(nproc) | |
working-directory: ${{ github.workspace }}/build/linux/riscv64 | |
cmake-windows-arm64: | |
runs-on: windows-latest | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure and build | |
run: scripts/build-windows-arm64.cmd | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
cmake-windows-x64: | |
runs-on: windows-latest | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure and build | |
run: scripts/build-windows-x64.cmd | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
env: | |
CFLAGS: "/UNDEBUG" | |
CXXFLAGS: "/UNDEBUG" | |
- name: Run tests | |
run: ctest -C Release --output-on-failure --parallel $NUMBER_OF_PROCESSORS | |
working-directory: ${{ github.workspace }}/build/windows/x64 | |
cmake-windows-x86: | |
runs-on: windows-latest | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Configure and build | |
run: scripts/build-windows-x86.cmd | |
shell: cmd | |
working-directory: ${{ github.workspace }} | |
env: | |
CFLAGS: "/UNDEBUG" | |
CXXFLAGS: "/UNDEBUG" | |
- name: Run tests | |
run: ctest -C Release --output-on-failure --parallel $NUMBER_OF_PROCESSORS | |
working-directory: ${{ github.workspace }}/build/windows/x86 | |
cmake-macos-arm64: | |
runs-on: macos-latest | |
timeout-minutes: 120 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create output directory | |
run: mkdir -p build/macos/arm64 | |
working-directory: ${{ github.workspace }} | |
- name: Generate CMake project | |
run: cmake -G Xcode -DCMAKE_CONFIGURATION_TYPES=Release -DCMAKE_OSX_ARCHITECTURES=arm64 -DHAVE_STD_REGEX=TRUE ../../.. | |
working-directory: ${{ github.workspace }}/build/macos/arm64 | |
- name: Build with Xcode | |
run: cmake --build build/macos/arm64 --parallel $(sysctl -n hw.ncpu) -- -quiet | |
working-directory: ${{ github.workspace }} | |
cmake-android: | |
strategy: | |
matrix: | |
script: [build-android-arm64.sh, build-android-armv7.sh, build-android-x86.sh] | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install ninja | |
run: sudo apt install ninja-build | |
- name: Setup Android NDK | |
id: setup-ndk | |
uses: nttld/setup-ndk@v1 | |
with: | |
ndk-version: r23b | |
add-to-path: false | |
- name: Configure and build | |
run: scripts/${{ matrix.script }} | |
working-directory: ${{ github.workspace }} | |
env: | |
ANDROID_NDK: ${{ steps.setup-ndk.outputs.ndk-path }} | |
cmake-ios-arm64: | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create output directory | |
run: mkdir -p build/ios/arm64 | |
working-directory: ${{ github.workspace }} | |
- name: Generate CMake project | |
run: cmake -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=arm64 -DXNNPACK_BUILD_BENCHMARKS=OFF -DXNNPACK_BUILD_TESTS=OFF ../../.. | |
working-directory: ${{ github.workspace }}/build/ios/arm64 | |
- name: Build with Xcode | |
run: cmake --build build/ios/arm64 --parallel $(sysctl -n hw.ncpu) -- -quiet | |
working-directory: ${{ github.workspace }} | |
cmake-ios-x86_64: | |
runs-on: macos-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create output directory | |
run: mkdir -p build/ios/x86_64 | |
working-directory: ${{ github.workspace }} | |
- name: Generate CMake project | |
run: cmake -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_ARCHITECTURES=x86_64 -DXNNPACK_BUILD_BENCHMARKS=OFF -DXNNPACK_BUILD_TESTS=OFF ../../.. | |
working-directory: ${{ github.workspace }}/build/ios/x86_64 | |
- name: Build with Xcode | |
run: cmake --build build/ios/x86_64 --parallel $(sysctl -n hw.ncpu) -- -sdk iphonesimulator -quiet | |
working-directory: ${{ github.workspace }} | |
bazel-linux: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Android NDK | |
id: setup-ndk | |
uses: nttld/setup-ndk@v1 | |
with: | |
ndk-version: r25b | |
add-to-path: false | |
- name: Build and run tests | |
run: | | |
# TODO(b/340788119): re-enable once an ndk supports this flag. | |
bazel test --define=xnn_enable_avx512fp16=false --test_output=errors test:all | |
working-directory: ${{ github.workspace }} | |
env: | |
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }} |