Dockerize clang tidy

pull/13913/head
ncteisen 7 years ago committed by Noah Eisen
parent 5edcfb39c6
commit 365ea6309b
  1. 2
      templates/tools/dockerfile/clang5.include
  2. 6
      templates/tools/dockerfile/grpc_clang_format/Dockerfile.template
  3. 26
      templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template
  4. 2
      templates/tools/dockerfile/test/sanity/Dockerfile.template
  5. 31
      tools/distrib/clang_tidy_code.sh
  6. 3
      tools/distrib/run_clang_tidy.py
  7. 2
      tools/dockerfile/grpc_clang_format/Dockerfile
  8. 39
      tools/dockerfile/grpc_clang_tidy/Dockerfile
  9. 9
      tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh
  10. 2
      tools/dockerfile/test/sanity/Dockerfile

@ -1,5 +1,3 @@
RUN apt-get update && apt-get -y install wget xz-utils
RUN wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
RUN tar xf clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-format /usr/local/bin/clang-format
ENV CLANG_FORMAT=clang-format

@ -16,8 +16,10 @@
FROM debian:jessie
<%include file="../clang_format.include"/>
<%include file="../clang5.include"/>
RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-format /usr/local/bin/clang-format
ENV CLANG_FORMAT=clang-format
ADD clang_format_all_the_things.sh /
CMD ["echo 'Run with tools/distrib/clang_format_code.sh'"]

@ -0,0 +1,26 @@
%YAML 1.2
--- |
# Copyright 2015 gRPC authors.
#
# 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.
FROM debian:jessie
<%include file="../clang5.include"/>
<%include file="../python_deps.include"/>
RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-tidy /usr/local/bin/clang-tidy
ENV CLANG_TIDY=clang-tidy
ADD clang_tidy_all_the_things.sh /
CMD ["echo 'Run with tools/distrib/clang_tidy_code.sh'"]

@ -53,7 +53,7 @@
RUN chmod +x ./bazel-0.4.4-installer-linux-x86_64.sh
RUN ./bazel-0.4.4-installer-linux-x86_64.sh
<%include file="../../clang_format.include"/>
<%include file="../../clang5.include"/>
<%include file="../../run_tests_addons.include"/>
# Define the default command.

@ -0,0 +1,31 @@
#!/bin/bash
# Copyright 2015 gRPC authors.
#
# 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.
set -ex
# change to root directory
cd $(dirname $0)/../..
REPO_ROOT=$(pwd)
if [ "$CLANG_TIDY_SKIP_DOCKER" == "" ]
then
# build clang-tidy docker image
docker build -t grpc_clang_tidy tools/dockerfile/grpc_clang_tidy
# run clang-tidy against the checked out codebase
docker run -e TEST=$TEST -e CHANGED_FILES="$CHANGED_FILES" -e CLANG_TIDY_ROOT="/local-code" --rm=true -v "${REPO_ROOT}":/local-code -t grpc_clang_tidy /clang_tidy_all_the_things.sh
else
CLANG_tidy_ROOT="${REPO_ROOT}" tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh
fi

@ -57,7 +57,8 @@ cmdline = [
clang_tidy,
'--checks=-*,%s' % ','.join(GRPC_CHECKS),
'--warnings-as-errors=%s' % ','.join(GRPC_CHECKS)
] + ['--extra-arg-before=%s' % arg for arg in extra_args]
]
# + ['--extra-arg-before=%s' % arg for arg in extra_args]
if args.fix:
cmdline.append('--fix')

@ -17,8 +17,8 @@ FROM debian:jessie
RUN apt-get update && apt-get -y install wget xz-utils
RUN wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
RUN tar xf clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-format /usr/local/bin/clang-format
ENV CLANG_FORMAT=clang-format
ADD clang_format_all_the_things.sh /
CMD ["echo 'Run with tools/distrib/clang_format_code.sh'"]

@ -0,0 +1,39 @@
# Copyright 2015 gRPC authors.
#
# 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.
FROM debian:jessie
RUN apt-get update && apt-get -y install wget xz-utils
RUN wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
RUN tar xf clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
#====================
# Python dependencies
# Install dependencies
RUN apt-get update && apt-get install -y \
python-all-dev \
python3-all-dev \
python-pip
# Install Python packages from PyPI
RUN pip install --upgrade pip==9.0.1
RUN pip install virtualenv
RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.5.0.post1 six==1.10.0 twisted==17.5.0
RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-tidy /usr/local/bin/clang-tidy
ENV CLANG_TIDY=clang-tidy
ADD clang_tidy_all_the_things.sh /
CMD ["echo 'Run with tools/distrib/clang_tidy_code.sh'"]

@ -15,7 +15,10 @@
set -e
make buildtests \
-j "$(python -c 'import multiprocessing; print multiprocessing.cpu_count()')"
# clang format command
CLANG_TIDY=${CLANG_TIDY:-clang-tidy-5.0}
cd ${CLANG_TIDY_ROOT}
find src/core src/cpp test/core test/cpp -name '*.h' -or -name '*.cc' -print0 \
| xargs -0 tools/distrib/run_clang_tidy.py "$@"
| xargs -0 tools/distrib/run_clang_tidy.py --fix

@ -108,8 +108,6 @@ RUN ./bazel-0.4.4-installer-linux-x86_64.sh
RUN apt-get update && apt-get -y install wget xz-utils
RUN wget http://releases.llvm.org/5.0.0/clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
RUN tar xf clang+llvm-5.0.0-linux-x86_64-ubuntu14.04.tar.xz
RUN ln -s /clang+llvm-5.0.0-linux-x86_64-ubuntu14.04/bin/clang-format /usr/local/bin/clang-format
ENV CLANG_FORMAT=clang-format
# Prepare ccache
RUN ln -s /usr/bin/ccache /usr/local/bin/gcc

Loading…
Cancel
Save