Files
flatbuffers/.github/workflows/build.yml
Aaron Son 41253e574e [go] tests/GoTest.sh: Fix flags.Parse location to work on new go SDKs. (#6388)
* tests/GoTest.sh: Fix flags.Parse location to work on new go SDKs.

Calling flags.Parse() within init() races with other packages which register
flags in their init(), and in particular with the testing package itself. It is
more reliable to call flags.Parse() from a TestMain implementation.

See https://github.com/golang/go/issues/31859,
https://github.com/golang/go/issues/33869.

* .github: Enable build-go action in build.yaml workflow.
2021-01-07 11:54:00 -08:00

197 lines
5.5 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 .
- 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-java:
name: Build Java
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test
working-directory: tests
run: bash JavaTest.sh
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