Files
flatbuffers-bigfoot/.github/workflows/build.yml
Björn Harrtell 408e4db4af [TS] Add Build TS to CI jobs (#6524)
* Add Build TS to CI jobs

* Add npm compile step

* Fix syntax

* Add required code gen for TS

* Exit on failure

* Make TS code gen identical to test run

* Remove duplicate TS code gen artifacts

* Remove bad gitignore

* Forgot parts of generate_code and make sure same settings for test run

* Don't forget about the bat

* Try and fix flatc args

* Another attempt to fix args

* Fix typo

* Commit up to date code gen

* Another attempt to fix sh/bat

* Move -o param to after -I

* Commit missing code gen file

* Fix grpc code gen and test

* Another grpc code gen fix

* Rework to not use ts folder

* Fix env vars in bat and make less churn

* Move TS code gen to dedicated folder

* Fix transpilation output folder and module paths

* Fixes to code gen

* Include generated js

* Moved ts code gen

* Remove test ts code gen folder
2021-04-12 10:41:59 -07:00

242 lines
6.8 KiB
YAML

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.2
- name: cmake
run: cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_CPP17=ON .
- 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-windows-2017:
name: Build Windows 2017
runs-on: windows-2016
steps:
- uses: actions/checkout@v1
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2
- name: cmake
run: cmake -G "Visual Studio 15 2017" -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
build-mac:
name: Build Mac
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
- name: cmake
run: cmake -G "Xcode" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_FLATC_EXECUTABLE=_build/Release/flatc .
- name: build
# NOTE: we need this _build dir to not have xcodebuild's default ./build dir clash with the BUILD file.
run: xcodebuild -toolchain clang -configuration Release -target flattests SYMROOT=$(PWD)/_build
- name: test
run: _build/Release/flattests
- name: upload build artifacts
uses: actions/upload-artifact@v1
with:
name: Mac flatc binary
path: _build/Release/flatc
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: set up flatc
run: |
cmake -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF .
make
echo "${PWD}" >> $GITHUB_PATH
- name: build
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
steps:
- uses: actions/checkout@v1
- name: test
working-directory: tests
run: bash JavaTest.sh
build-kotlin:
name: Build Kotlin
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Build
working-directory: kotlin
run: ./gradlew clean build allTests
- name: Run Benchmark
working-directory: kotlin
run: ./gradlew benchmark
- name: Generate Benchmark Report
working-directory: kotlin
run: |
./gradlew jmhReport;
mv benchmark/build/reports/benchmarks/main/* benchmark_latest
- name: Archive benchmark report
uses: actions/upload-artifact@v1
with:
name: Kotlin Benchmark Report
path: kotlin/benchmark_latest
build-rust:
name: Build Rust
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test
working-directory: tests
run: bash RustTest.sh
#build-js:
# name: Build JS
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v1
# - name: flatc
# # FIXME: make test script not rely on flatc
# run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
# - name: test
# working-directory: tests
# run: bash JavaScriptTest.sh
#build-ts:
# name: Build TS
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v1
# - name: flatc
# # FIXME: make test script not rely on flatc
# run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
# - name: test
# working-directory: tests
# run: bash TypeScriptTest.sh
build-python:
name: Build Python
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test
working-directory: tests
run: bash PythonTest.sh
build-go:
name: Build Go
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: flatc
# FIXME: make test script not rely on flatc
run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
- name: test
working-directory: tests
run: bash GoTest.sh
#build-csharp:
# name: Build CSharp
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v1
# - name: test
# working-directory: tests/FlatBuffers.Test
# run: bash NetTest.sh
#build-php:
# name: Build PHP
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v1
# - name: flatc
# # FIXME: make test script not rely on flatc
# run: cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DFLATBUFFERS_BUILD_TESTS=OFF -DFLATBUFFERS_INSTALL=OFF -DFLATBUFFERS_BUILD_FLATLIB=OFF -DFLATBUFFERS_BUILD_FLATHASH=OFF . && make -j4
# - name: test
# working-directory: tests
# run: |
# php phpTest.php
# sh phpUnionVectorTest.sh
build-swift:
name: Build Swift
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test
working-directory: tests/FlatBuffers.Test.Swift
run: sh SwiftTest.sh
build-ts:
name: Build TS
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: compile
run: npm run compile
- name: test
working-directory: tests
run: sh TypeScriptTest.sh