From 02336a29ac7c2ba8ee68a7a0bae589b713805c20 Mon Sep 17 00:00:00 2001 From: Noah Eisen Date: Wed, 3 Jan 2018 22:14:28 -0800 Subject: [PATCH 1/9] Check for failures from run clang tidy --- tools/distrib/run_clang_tidy.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/distrib/run_clang_tidy.py b/tools/distrib/run_clang_tidy.py index 72d7956b68e..bc61d4e79a7 100755 --- a/tools/distrib/run_clang_tidy.py +++ b/tools/distrib/run_clang_tidy.py @@ -69,4 +69,5 @@ for filename in args.files: shortname=filename, )) #verbose_success=True)) -jobset.run(jobs, maxjobs=args.jobs) +num_fails, res_set = jobset.run(jobs, maxjobs=args.jobs) +sys.exit(num_fails) From 5edcfb39c6afaabdd183da9e08fbcc56720fb92f Mon Sep 17 00:00:00 2001 From: Noah Eisen Date: Wed, 3 Jan 2018 22:28:07 -0800 Subject: [PATCH 2/9] Dont check every single file --- tools/run_tests/sanity/check_clang_tidy.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/run_tests/sanity/check_clang_tidy.sh b/tools/run_tests/sanity/check_clang_tidy.sh index 6c4caa1ee63..a27379253e9 100755 --- a/tools/run_tests/sanity/check_clang_tidy.sh +++ b/tools/run_tests/sanity/check_clang_tidy.sh @@ -17,5 +17,5 @@ set -e make buildtests \ -j "$(python -c 'import multiprocessing; print multiprocessing.cpu_count()')" -find src/core src/cpp test/core test/cpp -print0 -name '*.h' -or -name '*.cc' \ +find src/core src/cpp test/core test/cpp -name '*.h' -or -name '*.cc' -print0 \ | xargs -0 tools/distrib/run_clang_tidy.py "$@" From 365ea6309bd683d384b58e05fdb58e557b20ba19 Mon Sep 17 00:00:00 2001 From: ncteisen Date: Fri, 12 Jan 2018 15:16:41 -0800 Subject: [PATCH 3/9] Dockerize clang tidy --- .../{clang_format.include => clang5.include} | 2 - .../grpc_clang_format/Dockerfile.template | 6 ++- .../grpc_clang_tidy/Dockerfile.template | 26 +++++++++++++ .../test/sanity/Dockerfile.template | 2 +- tools/distrib/clang_tidy_code.sh | 31 +++++++++++++++ tools/distrib/run_clang_tidy.py | 3 +- tools/dockerfile/grpc_clang_format/Dockerfile | 2 +- tools/dockerfile/grpc_clang_tidy/Dockerfile | 39 +++++++++++++++++++ .../clang_tidy_all_the_things.sh} | 9 +++-- tools/dockerfile/test/sanity/Dockerfile | 2 - 10 files changed, 110 insertions(+), 12 deletions(-) rename templates/tools/dockerfile/{clang_format.include => clang5.include} (61%) create mode 100644 templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template create mode 100755 tools/distrib/clang_tidy_code.sh create mode 100644 tools/dockerfile/grpc_clang_tidy/Dockerfile rename tools/{run_tests/sanity/check_clang_tidy.sh => dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh} (82%) diff --git a/templates/tools/dockerfile/clang_format.include b/templates/tools/dockerfile/clang5.include similarity index 61% rename from templates/tools/dockerfile/clang_format.include rename to templates/tools/dockerfile/clang5.include index 79d0ff286f8..f16439b1d45 100644 --- a/templates/tools/dockerfile/clang_format.include +++ b/templates/tools/dockerfile/clang5.include @@ -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 diff --git a/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template b/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template index 1ab667c95d3..75048ba70fe 100644 --- a/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template +++ b/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template @@ -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'"] - \ No newline at end of file + diff --git a/templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template b/templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template new file mode 100644 index 00000000000..67d56cace22 --- /dev/null +++ b/templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template @@ -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'"] + + diff --git a/templates/tools/dockerfile/test/sanity/Dockerfile.template b/templates/tools/dockerfile/test/sanity/Dockerfile.template index c98f7d41761..7453e6c460d 100644 --- a/templates/tools/dockerfile/test/sanity/Dockerfile.template +++ b/templates/tools/dockerfile/test/sanity/Dockerfile.template @@ -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. diff --git a/tools/distrib/clang_tidy_code.sh b/tools/distrib/clang_tidy_code.sh new file mode 100755 index 00000000000..c5bfc5ca4cc --- /dev/null +++ b/tools/distrib/clang_tidy_code.sh @@ -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 diff --git a/tools/distrib/run_clang_tidy.py b/tools/distrib/run_clang_tidy.py index bc61d4e79a7..182897e491b 100755 --- a/tools/distrib/run_clang_tidy.py +++ b/tools/distrib/run_clang_tidy.py @@ -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') diff --git a/tools/dockerfile/grpc_clang_format/Dockerfile b/tools/dockerfile/grpc_clang_format/Dockerfile index b3abaef4657..7c2b5650f64 100644 --- a/tools/dockerfile/grpc_clang_format/Dockerfile +++ b/tools/dockerfile/grpc_clang_format/Dockerfile @@ -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'"] diff --git a/tools/dockerfile/grpc_clang_tidy/Dockerfile b/tools/dockerfile/grpc_clang_tidy/Dockerfile new file mode 100644 index 00000000000..ed34fdc107f --- /dev/null +++ b/tools/dockerfile/grpc_clang_tidy/Dockerfile @@ -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'"] diff --git a/tools/run_tests/sanity/check_clang_tidy.sh b/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh similarity index 82% rename from tools/run_tests/sanity/check_clang_tidy.sh rename to tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh index a27379253e9..a74c7288509 100755 --- a/tools/run_tests/sanity/check_clang_tidy.sh +++ b/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.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 diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile index 6e5a133a698..f3330cfd8d8 100644 --- a/tools/dockerfile/test/sanity/Dockerfile +++ b/tools/dockerfile/test/sanity/Dockerfile @@ -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 From 1adad729797df4cb8c92c26fcdb5f59a72261fd4 Mon Sep 17 00:00:00 2001 From: ncteisen Date: Fri, 12 Jan 2018 15:26:30 -0800 Subject: [PATCH 4/9] Add to sanity, dont fix by default --- tools/distrib/clang_tidy_code.sh | 2 +- tools/distrib/run_clang_tidy.py | 3 +-- tools/run_tests/sanity/sanity_tests.yaml | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/tools/distrib/clang_tidy_code.sh b/tools/distrib/clang_tidy_code.sh index c5bfc5ca4cc..b9d4368997a 100755 --- a/tools/distrib/clang_tidy_code.sh +++ b/tools/distrib/clang_tidy_code.sh @@ -25,7 +25,7 @@ then 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 + 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 diff --git a/tools/distrib/run_clang_tidy.py b/tools/distrib/run_clang_tidy.py index 182897e491b..bc61d4e79a7 100755 --- a/tools/distrib/run_clang_tidy.py +++ b/tools/distrib/run_clang_tidy.py @@ -57,8 +57,7 @@ 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') diff --git a/tools/run_tests/sanity/sanity_tests.yaml b/tools/run_tests/sanity/sanity_tests.yaml index dab991a7b17..efdb4d84b5c 100644 --- a/tools/run_tests/sanity/sanity_tests.yaml +++ b/tools/run_tests/sanity/sanity_tests.yaml @@ -14,11 +14,11 @@ cpu_cost: 3 - script: tools/distrib/check_copyright.py - script: tools/distrib/clang_format_code.sh +- script: tools/distrib/clang_tidy_code.sh - script: tools/distrib/check_trailing_newlines.sh - script: tools/distrib/check_nanopb_output.sh - script: tools/distrib/check_include_guards.py - script: tools/distrib/pylint_code.sh - script: tools/distrib/yapf_code.sh - script: tools/distrib/python/check_grpcio_tools.py -- script: tools/run_tests/sanity/check_clang_tidy.sh cpu_cost: 1000 From d268793ff3ff64b2b417f2cdbf5bed71feaf3b43 Mon Sep 17 00:00:00 2001 From: Noah Eisen Date: Tue, 16 Jan 2018 17:22:24 -0800 Subject: [PATCH 5/9] Fix clang format docker --- templates/tools/dockerfile/test/sanity/Dockerfile.template | 2 ++ tools/dockerfile/test/sanity/Dockerfile | 2 ++ 2 files changed, 4 insertions(+) diff --git a/templates/tools/dockerfile/test/sanity/Dockerfile.template b/templates/tools/dockerfile/test/sanity/Dockerfile.template index 7453e6c460d..9caa10884dc 100644 --- a/templates/tools/dockerfile/test/sanity/Dockerfile.template +++ b/templates/tools/dockerfile/test/sanity/Dockerfile.template @@ -54,6 +54,8 @@ RUN ./bazel-0.4.4-installer-linux-x86_64.sh <%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 <%include file="../../run_tests_addons.include"/> # Define the default command. diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile index f3330cfd8d8..a243cbb8e51 100644 --- a/tools/dockerfile/test/sanity/Dockerfile +++ b/tools/dockerfile/test/sanity/Dockerfile @@ -109,6 +109,8 @@ 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 RUN ln -s /usr/bin/ccache /usr/local/bin/g++ From e737ae9e32823e924c452e98798f3d044e4dd394 Mon Sep 17 00:00:00 2001 From: Noah Eisen Date: Tue, 16 Jan 2018 18:02:04 -0800 Subject: [PATCH 6/9] Stop building docker from inside docker --- tools/run_tests/run_tests.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index c8e917f1171..6b27d6f875f 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -1127,6 +1127,7 @@ class Sanity(object): environ = {'TEST': 'true'} if _is_use_docker_child(): environ['CLANG_FORMAT_SKIP_DOCKER'] = 'true' + environ['CLANG_TIDY_SKIP_DOCKER'] = 'true' return [ self.config.job_spec( cmd['script'].split(), From 86ddb5393d452fc30ba3941a286c79c253909abc Mon Sep 17 00:00:00 2001 From: Noah Eisen Date: Tue, 16 Jan 2018 18:13:26 -0800 Subject: [PATCH 7/9] Ensure all sanity finds clang-tidy --- templates/tools/dockerfile/clang5.include | 4 ++++ .../tools/dockerfile/grpc_clang_format/Dockerfile.template | 2 -- .../tools/dockerfile/grpc_clang_tidy/Dockerfile.template | 2 -- templates/tools/dockerfile/test/sanity/Dockerfile.template | 2 -- tools/dockerfile/grpc_clang_format/Dockerfile | 4 +++- tools/dockerfile/grpc_clang_tidy/Dockerfile | 6 ++++-- tools/dockerfile/test/sanity/Dockerfile | 4 +++- 7 files changed, 14 insertions(+), 10 deletions(-) diff --git a/templates/tools/dockerfile/clang5.include b/templates/tools/dockerfile/clang5.include index f16439b1d45..11ff4427879 100644 --- a/templates/tools/dockerfile/clang5.include +++ b/templates/tools/dockerfile/clang5.include @@ -1,3 +1,7 @@ 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 +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 diff --git a/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template b/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template index 75048ba70fe..4f24a025c64 100644 --- a/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template +++ b/templates/tools/dockerfile/grpc_clang_format/Dockerfile.template @@ -17,8 +17,6 @@ FROM debian:jessie <%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'"] diff --git a/templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template b/templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template index 67d56cace22..f5bceaa5f38 100644 --- a/templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template +++ b/templates/tools/dockerfile/grpc_clang_tidy/Dockerfile.template @@ -18,8 +18,6 @@ <%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'"] diff --git a/templates/tools/dockerfile/test/sanity/Dockerfile.template b/templates/tools/dockerfile/test/sanity/Dockerfile.template index 9caa10884dc..7453e6c460d 100644 --- a/templates/tools/dockerfile/test/sanity/Dockerfile.template +++ b/templates/tools/dockerfile/test/sanity/Dockerfile.template @@ -54,8 +54,6 @@ RUN ./bazel-0.4.4-installer-linux-x86_64.sh <%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 <%include file="../../run_tests_addons.include"/> # Define the default command. diff --git a/tools/dockerfile/grpc_clang_format/Dockerfile b/tools/dockerfile/grpc_clang_format/Dockerfile index 7c2b5650f64..8801315bc9b 100644 --- a/tools/dockerfile/grpc_clang_format/Dockerfile +++ b/tools/dockerfile/grpc_clang_format/Dockerfile @@ -17,8 +17,10 @@ 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 +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_format_all_the_things.sh / CMD ["echo 'Run with tools/distrib/clang_format_code.sh'"] diff --git a/tools/dockerfile/grpc_clang_tidy/Dockerfile b/tools/dockerfile/grpc_clang_tidy/Dockerfile index ed34fdc107f..9d9d70185b0 100644 --- a/tools/dockerfile/grpc_clang_tidy/Dockerfile +++ b/tools/dockerfile/grpc_clang_tidy/Dockerfile @@ -17,6 +17,10 @@ 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 +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 #==================== # Python dependencies @@ -33,7 +37,5 @@ 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'"] diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile index a243cbb8e51..7a8e1c09b1d 100644 --- a/tools/dockerfile/test/sanity/Dockerfile +++ b/tools/dockerfile/test/sanity/Dockerfile @@ -108,9 +108,11 @@ 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 +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 + # Prepare ccache RUN ln -s /usr/bin/ccache /usr/local/bin/gcc RUN ln -s /usr/bin/ccache /usr/local/bin/g++ From c4aba517a50afa868de40891bbe696947d2d50d4 Mon Sep 17 00:00:00 2001 From: Noah Eisen Date: Tue, 16 Jan 2018 20:02:22 -0800 Subject: [PATCH 8/9] s/tidy/TIDY --- tools/distrib/clang_tidy_code.sh | 2 +- tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/distrib/clang_tidy_code.sh b/tools/distrib/clang_tidy_code.sh index b9d4368997a..7f3dfb116fa 100755 --- a/tools/distrib/clang_tidy_code.sh +++ b/tools/distrib/clang_tidy_code.sh @@ -27,5 +27,5 @@ then # 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 + CLANG_TIDY_ROOT="${REPO_ROOT}" tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh fi diff --git a/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh b/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh index a74c7288509..cb22d75489b 100755 --- a/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh +++ b/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -set -e +set -ex # clang format command CLANG_TIDY=${CLANG_TIDY:-clang-tidy-5.0} From 479067b2b5820709c3f5c8dcb073bf066ee648de Mon Sep 17 00:00:00 2001 From: ncteisen Date: Wed, 17 Jan 2018 07:55:07 -0800 Subject: [PATCH 9/9] do not fix automatically --- tools/distrib/clang_tidy_code.sh | 4 +++- tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/distrib/clang_tidy_code.sh b/tools/distrib/clang_tidy_code.sh index 7f3dfb116fa..5da86aa2775 100755 --- a/tools/distrib/clang_tidy_code.sh +++ b/tools/distrib/clang_tidy_code.sh @@ -13,6 +13,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +echo "NOTE: to automagically apply fixes, invoke with --fix" + set -ex # change to root directory @@ -27,5 +29,5 @@ then # 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 + CLANG_TIDY_ROOT="${REPO_ROOT}" tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh "$@" fi diff --git a/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh b/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh index cb22d75489b..1a82dd52b79 100755 --- a/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh +++ b/tools/dockerfile/grpc_clang_tidy/clang_tidy_all_the_things.sh @@ -21,4 +21,4 @@ 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 --fix + | xargs -0 tools/distrib/run_clang_tidy.py "$@"