From 1b0e5352975e069e16df1874db7260c1a89147f7 Mon Sep 17 00:00:00 2001 From: David Reveman Date: Sat, 23 Nov 2024 12:56:51 -0500 Subject: [PATCH] build(ci): Add breeze workflow with openmp job This builds and runs all Breeze unit tests using OpenMP. --- .github/workflows/breeze.yml | 79 ++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/breeze.yml diff --git a/.github/workflows/breeze.yml b/.github/workflows/breeze.yml new file mode 100644 index 000000000000..2f8d14d80b27 --- /dev/null +++ b/.github/workflows/breeze.yml @@ -0,0 +1,79 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Breeze Linux Build + +on: + push: + branches: + - "main" + paths: + - "velox/experimental/breeze/**" + - "velox/external/perfetto/**" + - "CMake/**" + - "scripts/setup-ubuntu.sh" + - "scripts/setup-helper-functions.sh" + - ".github/workflows/breeze.yml" + + pull_request: + paths: + - "velox/experimental/breeze/**" + - "velox/external/perfetto/**" + - "CMake/**" + - "scripts/setup-ubuntu.sh" + - "scripts/setup-helper-functions.sh" + - ".github/workflows/breeze.yml" + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.repository }}-${{ github.head_ref || github.sha }} + cancel-in-progress: true + +jobs: + ubuntu-debug: + runs-on: ubuntu-22.04 + # prevent errors when forks ff their main branch + if: ${{ github.repository == 'facebookincubator/velox' }} + name: "Ubuntu debug" + defaults: + run: + shell: bash + working-directory: velox + steps: + + - uses: actions/checkout@v4 + with: + path: velox + + - name: Install Dependencies + run: | + source scripts/setup-ubuntu.sh && install_apt_deps + + - name: Make Debug Build + env: + VELOX_DEPENDENCY_SOURCE: BUNDLED + # OpenMP build with asan+ubsan enabled + run: | + cmake -S velox/experimental/breeze -B _build-breeze/debug \ + -DCMAKE_BUILD_TYPE=Asan \ + -DCMAKE_CXX_FLAGS="-fsanitize=undefined" \ + -DBUILD_GENERATE_TEST_FIXTURES=OFF \ + -DBUILD_OPENMP=ON + cmake --build _build-breeze/debug -j 8 + + - name: Run Tests + run: | + cd _build-breeze/debug && ctest -j 8 --output-on-failure --no-tests=error