grpc_bazel_build_in_docker.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env bash
  2. # Copyright 2017 gRPC authors.
  3. #
  4. # Licensed under the Apache License, Version 2.0 (the "License");
  5. # you may not use this file except in compliance with the License.
  6. # You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. #
  16. # Test basic Bazel features
  17. #
  18. # NOTE: No empty lines should appear in this file before igncr is set!
  19. set -ex -o igncr || set -ex
  20. mkdir -p /var/local/git
  21. git clone /var/local/jenkins/grpc /var/local/git/grpc
  22. (cd /var/local/jenkins/grpc/ && git submodule foreach 'cd /var/local/git/grpc \
  23. && git submodule update --init --reference /var/local/jenkins/grpc/${name} \
  24. ${name}')
  25. cd /var/local/git/grpc
  26. # Build all basic targets using the strict warning option which leverages the
  27. # clang compiler to check if sources can pass a set of warning options.
  28. # For now //examples/android/binder/ are excluded because it needs Android
  29. # SDK/NDK to be installed to build
  30. bazel build --define=use_strict_warning=true \
  31. -- \
  32. :all \
  33. //src/core/... \
  34. //src/compiler/... \
  35. //test/... \
  36. //examples/... \
  37. -//examples/android/binder/...
  38. # TODO(veblush): Remove this test after migration to abseil-status is done.
  39. bazel build --define=use_strict_warning=true --define=use_abseil_status=true \
  40. -- \
  41. //src/core/... \
  42. //src/compiler/... \
  43. //test/...
  44. # TODO(jtattersmusch): Adding a build here for --define=grpc_no_xds is not ideal
  45. # and we should find a better place for this. Refer
  46. # https://github.com/grpc/grpc/pull/24536#pullrequestreview-517466531 for more
  47. # details.
  48. # Test that builds with --define=grpc_no_xds=true work.
  49. bazel build //test/cpp/end2end:end2end_test --define=grpc_no_xds=true
  50. # Test that builds that need xDS do not build with --define=grpc_no_xds=true
  51. EXIT_CODE=0
  52. bazel build //test/cpp/end2end:xds_end2end_test --define=grpc_no_xds=true || EXIT_CODE=$?
  53. if [ $EXIT_CODE -eq 0 ]
  54. then
  55. echo "Building xds_end2end_test succeeded even with --define=grpc_no_xds=true"
  56. exit 1
  57. fi