summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml88
1 files changed, 88 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..270ffbc9
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,88 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ build-linux:
+ name: Build Linux
+ 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" -DCMAKE_BUILD_TYPE=Release .
+ - name: build
+ run: make -j4
+ - name: test
+ run: ./flattests
+ - name: upload build artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: Linux flatc binary ${{ matrix.cxx }}
+ path: flatc
+
+ build-windows:
+ name: Build Windows
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v1
+ - name: Add msbuild to PATH
+ uses: microsoft/setup-msbuild@v1.0.0
+ - name: cmake
+ run: cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release .
+ - name: build
+ run: msbuild.exe FlatBuffers.sln /p:Configuration=Release /p:Platform=x64
+ - name: test
+ run: Release\flattests.exe
+ - name: upload build artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: Windows flatc binary
+ path: Release\flatc.exe
+
+ build-mac:
+ name: Build Mac
+ runs-on: macos-latest
+ steps:
+ - uses: actions/checkout@v1
+ - name: cmake
+ run: cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release .
+ - name: build
+ run: xcodebuild -toolchain clang -configuration Release -target flattests
+ - name: test
+ run: Release/flattests
+ - name: upload build artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: Mac flatc binary
+ path: Release/flatc
+
+
+# FIXME: to make this work, this apparently needs:
+# - a newer version of gradle in build.gradle (e.g. 3.2.1)
+# - google() in the repos in build.gradle
+# - gradle version 4.6 in gradle-wrapper.properties ?
+# - some kind of flavor declaration?
+# All while not breaking the existing Travis Android build.
+# good luck.
+
+# build-android:
+# name: Build Android (on Linux)
+# runs-on: ubuntu-latest
+# steps:
+# - uses: actions/checkout@v1
+# - name: set up JDK 1.8
+# uses: actions/setup-java@v1
+# with:
+# java-version: 1.8
+# - name: build
+# working-directory: android
+# run: bash ./gradlew buildDebug