Attempt at adding Github Actions CI
authorWouter van Oortmerssen <aardappel@gmail.com>
Tue, 5 May 2020 17:47:29 +0000 (10:47 -0700)
committerWouter van Oortmerssen <aardappel@gmail.com>
Tue, 5 May 2020 20:56:37 +0000 (13:56 -0700)
.github/workflows/build.yml [new file with mode: 0644]

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644 (file)
index 0000000..270ffbc
--- /dev/null
@@ -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