forked from BigfootDev/flatbuffers
* chore: make flatc artifacts from CI executable * chore: prepare dart 2.0.0 release * refactor: update description in pubspec.yaml to make pub.dev happy "The package description is too long. Search engines display only the first part of the description. Try to keep the value of the description field in your package's pubspec.yaml file between 60 and 180 characters."
294 lines
8.6 KiB
YAML
294 lines
8.6 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++-10, clang++-12]
|
|
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: make flatc executable
|
|
run: |
|
|
chmod +x flatc
|
|
./flatc --version
|
|
- 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: check that the binary is "universal"
|
|
run: |
|
|
info=$(file _build/Release/flatc)
|
|
echo $info
|
|
echo $info | grep "universal binary with 2 architectures"
|
|
- name: test
|
|
run: _build/Release/flattests
|
|
- name: make flatc executable
|
|
run: |
|
|
chmod +x _build/Release/flatc
|
|
./_build/Release/flatc --version
|
|
- 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++-10, clang++-12]
|
|
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-benchmarks:
|
|
name: Build Benchmarks (on Linux)
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
cxx: [g++-10]
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: cmake
|
|
run: CXX=${{ matrix.cxx }} cmake -G "Unix Makefiles" -DFLATBUFFERS_CXX_FLAGS="-Wno-unused-parameter -fno-aligned-new" -DFLATBUFFERS_BUILD_BENCHMARKS=ON -DCMAKE_BUILD_TYPE=Release . && make -j4
|
|
- name: Run benchmarks
|
|
run: ./flatbenchmark --benchmark_repetitions=5 --benchmark_display_aggregates_only=true --benchmark_out_format=console --benchmark_out=benchmarks/results_${{matrix.cxx}}
|
|
- name: Upload benchmarks results
|
|
uses: actions/upload-artifact@v1
|
|
with:
|
|
name: Linux flatbenchmark results ${{matrix.cxx}}
|
|
path: benchmarks/results_${{matrix.cxx}}
|
|
|
|
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-macos:
|
|
name: Build Kotlin MacOS
|
|
runs-on: macos-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- uses: actions/setup-java@v2
|
|
with:
|
|
distribution: 'adopt-hotspot'
|
|
java-version: '11'
|
|
- name: Build
|
|
working-directory: kotlin
|
|
run: ./gradlew clean iosX64Test macosX64Test jsTest jsBrowserTest
|
|
|
|
build-kotlin-linux:
|
|
name: Build Kotlin Linux
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- uses: actions/setup-java@v2
|
|
with:
|
|
distribution: 'adopt-hotspot'
|
|
java-version: '8'
|
|
- name: Build
|
|
working-directory: kotlin
|
|
run: ./gradlew jvmMainClasses jvmTest
|
|
- name: Run Benchmark
|
|
working-directory: kotlin
|
|
run: ./gradlew jvmBenchmark
|
|
- 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-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
|
|
|
|
build-dart:
|
|
name: Build Dart
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: dart-lang/setup-dart@v1
|
|
with:
|
|
sdk: stable
|
|
- 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 DartTest.sh
|