diff --git a/.travis.yml b/.travis.yml index e74829b882..9be6e2eab8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,8 +36,6 @@ install: - if [[ "$DOCS_BUILD" == "1" ]]; then . ./scripts/travis/docs_setup.sh ; fi - if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$CODE_BUILD" == "1" ]]; then . ./scripts/travis/linux_setup.sh ; fi - if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$CODE_BUILD" == "1" ]]; then . ./scripts/travis/osx_setup.sh ; fi - - git clean -f - - git diff --exit-code script: - if [[ "$DOCS_BUILD" == "1" ]]; then . ./scripts/travis/docs_compile.sh ; fi diff --git a/scripts/travis/linux_setup.sh b/scripts/travis/linux_setup.sh index 3183fd17ae..24281aac6f 100644 --- a/scripts/travis/linux_setup.sh +++ b/scripts/travis/linux_setup.sh @@ -8,4 +8,25 @@ wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - sudo apt-get update -qq sudo apt-get install --allow-unauthenticated -y -qq libx11-dev mesa-common-dev libgl1-mesa-dev qt56base qt56x11extras libxcb-keysyms1-dev gdb clang-format-3.8 +# check formatting matches clang-format-3.8. Since newer versions can have +# changes in formatting even without any rule changes, we have to fix on a +# single version. + clang-format-3.8 -i -style=file $(find pdblocate/ qrenderdoc/ renderdoc/ renderdoccmd/ renderdocshim/ -type f -regex '.*\(/3rdparty/\|/official/\|resource.h\).*' -prune -o -regex '.*\.\(c\|cpp\|h\)$' -print) + +git clean -f + +# this swallows the exit code so we won't fail until we print the diff in +# the next line, but allows us to print a friendlier message to anyone +# looking at the build log +git diff --quiet || ( + echo "***************************************************"; + echo "*** The code is not clean against clang-format ***"; + echo "*** Please run clang-format-3.8 and fix the ***"; + echo "*** differences then rebase/squash them into ***"; + echo "*** the relevant commits. Do not add a commit ***"; + echo "*** for just formatting fixes. Thanks! ***"; + echo "***************************************************"; + ) + +git diff --exit-code