From 9017afb7a86dbffcc0015c12796690860a497c03 Mon Sep 17 00:00:00 2001 From: Adonis Ling Date: Fri, 22 Jul 2022 09:14:21 +0800 Subject: [PATCH] [enhancement](workflow) Add a workflow for Clang check (#11083) * Add a workflow for Clang check --- .github/workflows/clang-build.yml | 60 +++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 .github/workflows/clang-build.yml diff --git a/.github/workflows/clang-build.yml b/.github/workflows/clang-build.yml new file mode 100644 index 00000000000000..08a7fb824a0fa2 --- /dev/null +++ b/.github/workflows/clang-build.yml @@ -0,0 +1,60 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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: Clang Build + +on: [push, pull_request] + +jobs: + build: + strategy: + matrix: + type: [build, ut] + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Run ${{ matrix.type }} + run: | + export DEFAULT_DIR='/opt/doris' + export PATH="${DEFAULT_DIR}/ldb-toolchain/bin/:${DEFAULT_DIR}/thirdparty/installed/bin/:${PATH}" + export DORIS_THIRDPARTY="${DEFAULT_DIR}/thirdparty" + + mkdir "${DEFAULT_DIR}" + + wget https://github.com/amosbird/ldb_toolchain_gen/releases/download/v0.12/ldb_toolchain_gen.sh \ + -q -O /tmp/ldb_toolchain_gen.sh + bash /tmp/ldb_toolchain_gen.sh "${DEFAULT_DIR}/ldb-toolchain" + + mkdir -p "${DORIS_THIRDPARTY}/installed" + docker run --rm --mount=type=bind,source="${DORIS_THIRDPARTY}/installed",target=/installed \ + apache/doris:build-env-ldb-toolchain-latest bash -c 'mv /var/local/thirdparty/installed/* /installed' + + sudo apt update + sudo apt upgrade --yes + sudo DEBIAN_FRONTEND=noninteractive apt install --yes tzdata ccache byacc + + # set timezone + sudo ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime + sudo dpkg-reconfigure --frontend noninteractive tzdata + + if [[ "${{ matrix.type }}" == 'build' ]]; then + DORIS_TOOLCHAIN=clang ./build.sh -j "$(nproc)" --be --clean + else + DORIS_TOOLCHAIN=clang ./run-be-ut.sh -j "$(nproc)" --run --clean + fi