From: mustiikhalil Date: Tue, 23 Feb 2021 05:51:39 +0000 (+0300) Subject: [CI] Adds Code Generation tests on Github Actions (#6482) X-Git-Tag: v2.0.0~66 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ffc2ef77caeb6b04e89db952c65216982db44698;p=platform%2Fupstream%2Fflatbuffers.git [CI] Adds Code Generation tests on Github Actions (#6482) Moves check-grpc-generation to scripts --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8a8c9e1..7b01c98 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -98,6 +98,19 @@ jobs: working-directory: android run: bash ./gradlew clean build + build-generator: + name: Check Generated Code + runs-on: ubuntu-latest + strategy: + matrix: + cxx: [g++-9, clang++-9] + steps: + - uses: actions/checkout@v1 + - name: cmake + run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DFLATBUFFERS_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release . && make -j4 + - name: Generate + run: bash scripts/check-generate-code.sh && bash scripts/check-grpc-generated-code.sh + build-java: name: Build Java runs-on: ubuntu-latest diff --git a/.travis.yml b/.travis.yml index fb174fc..c3c1346 100644 --- a/.travis.yml +++ b/.travis.yml @@ -114,7 +114,7 @@ matrix: -DFLATBUFFERS_CODE_SANITIZE=ON - cmake --build . --target all --clean-first -- -j${JOBS} - LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure - - bash .travis/check-generate-code.sh + - bash scripts/check-generate-code.sh - language: cpp os: osx @@ -134,7 +134,7 @@ matrix: -DFLATBUFFERS_CODE_SANITIZE=ON - cmake --build . -- -j${JOBS} - DYLD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/google/grpc/install/lib ctest --extra-verbose --output-on-failure - - bash .travis/check-generate-code.sh + - bash scripts/check-generate-code.sh - <<: *conan-linux-master env: CONAN_GCC_VERSIONS=8 CONAN_DOCKER_IMAGE=conanio/gcc8 diff --git a/grpc/examples/generate.sh b/grpc/examples/generate.sh index 0d2a900..0ac2818 100644 --- a/grpc/examples/generate.sh +++ b/grpc/examples/generate.sh @@ -1,3 +1,21 @@ +#!/bin/bash +# +# Copyright 2021 Google Inc. All rights reserved. +# +# 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 -e + current_dir=`pwd` cd ../.. @@ -6,7 +24,17 @@ main_dir=`pwd` cd ${current_dir} -alias fbc='${main_dir}/Debug/flatc' +# Looks for flatc within the root dir & debug +if [ -e ${main_dir}/flatc ]; then + alias fbc='${main_dir}/flatc' +elif [ -e ${main_dir}/Debug/flatc ]; then + alias fbc='${main_dir}/Debug/flatc' +else + echo 'flatc' could not be found. Make sure to build FlatBuffers from the \ + $rootdir directory. + exit 1 +fi + generator="--grpc $current_dir/greeter.fbs" # Regenerate Go lang code diff --git a/.travis/check-generate-code.sh b/scripts/check-generate-code.sh similarity index 100% rename from .travis/check-generate-code.sh rename to scripts/check-generate-code.sh diff --git a/scripts/check-grpc-generated-code.sh b/scripts/check-grpc-generated-code.sh new file mode 100644 index 0000000..4541be1 --- /dev/null +++ b/scripts/check-grpc-generated-code.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Copyright 2021 Google Inc. All rights reserved. +# +# 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 -e + +echo "Checks generated grpc code" +cd grpc/examples +sh generate.sh +cd .. + +if ! git diff --quiet; then + echo >&2 + echo "ERROR: ********************************************************" >&2 + echo "ERROR: The following differences were found after running the" >&2 + echo "ERROR: grpc/example/generate.sh script. Maybe you forgot to run" >&2 + echo "ERROR: it after making changes in a generator or schema?" >&2 + echo "ERROR: ********************************************************" >&2 + echo >&2 + git diff --binary --exit-code +fi diff --git a/tests/docker/build_flatc.run.sh b/tests/docker/build_flatc.run.sh index c8885b1..3473765 100755 --- a/tests/docker/build_flatc.run.sh +++ b/tests/docker/build_flatc.run.sh @@ -11,5 +11,5 @@ cmake . -DCMAKE_BUILD_TYPE=$config \ cmake --build . --target flatc --clean-first -- -j$JOBS echo "Check generated code" -.travis/check-generate-code.sh +scripts/check-generate-code.sh echo "Done" diff --git a/tests/docker/cpp_test.run.sh b/tests/docker/cpp_test.run.sh index fa3b0fb..e05b74d 100755 --- a/tests/docker/cpp_test.run.sh +++ b/tests/docker/cpp_test.run.sh @@ -15,6 +15,6 @@ cmake --build . --target all --clean-first -- -j$JOBS ctest --extra-verbose --output-on-failure -j$JOBS echo "Check generated code" -.travis/check-generate-code.sh +scripts/check-generate-code.sh echo "C++ tests done" diff --git a/tests/generate_code.sh b/tests/generate_code.sh index baa70e7..45c7ccd 100755 --- a/tests/generate_code.sh +++ b/tests/generate_code.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright 2015 Google Inc. All rights reserved. +# Copyright 2021 Google Inc. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.