summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormustiikhalil <mustii@mmk.one>2021-02-23 08:51:39 +0300
committerGitHub <noreply@github.com>2021-02-23 08:51:39 +0300
commitffc2ef77caeb6b04e89db952c65216982db44698 (patch)
tree7b9b5772cab1ee003c73ca2c0a23f8c78c8be5cf
parent1da6f4f18bdc7f47cd84f58a427835f2b790cb29 (diff)
downloadflatbuffers-ffc2ef77caeb6b04e89db952c65216982db44698.tar.gz
flatbuffers-ffc2ef77caeb6b04e89db952c65216982db44698.tar.bz2
flatbuffers-ffc2ef77caeb6b04e89db952c65216982db44698.zip
[CI] Adds Code Generation tests on Github Actions (#6482)
Moves check-grpc-generation to scripts
-rw-r--r--.github/workflows/build.yml13
-rw-r--r--.travis.yml4
-rw-r--r--grpc/examples/generate.sh30
-rwxr-xr-xscripts/check-generate-code.sh (renamed from .travis/check-generate-code.sh)0
-rw-r--r--scripts/check-grpc-generated-code.sh32
-rwxr-xr-xtests/docker/build_flatc.run.sh2
-rwxr-xr-xtests/docker/cpp_test.run.sh2
-rwxr-xr-xtests/generate_code.sh2
8 files changed, 79 insertions, 6 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 8a8c9e16..7b01c98a 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 fb174fcf..c3c13465 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 0d2a900d..0ac2818a 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
index 1f2d84d4..1f2d84d4 100755
--- a/.travis/check-generate-code.sh
+++ b/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 00000000..4541be16
--- /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 c8885b19..3473765b 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 fa3b0fb1..e05b74da 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 baa70e72..45c7ccd9 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.