Split workflows by OS (#77)

This commit is contained in:
Arthur Sonzogni 2021-03-21 13:42:12 +01:00 committed by GitHub
parent add8082cd9
commit 3a0b2520eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 72 additions and 79 deletions

View File

@ -1,78 +0,0 @@
name: Build and run tests
on:
- push
- pull_request
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: "Windows Latest - MSVC"
os: windows-latest
cc: "cl"
cxx: "cl"
cmake: cmake
test: false
- name: "Ubuntu Latest - GCC"
os: ubuntu-latest
cc: "gcc-9"
cxx: "g++-9"
cmake: "cmake"
test: true
- name: "Ubuntu Latest - Clang"
os: ubuntu-latest
cc: "clang-9"
cxx: "clang++-9"
cmake: "cmake"
test: true
- name: "Ubuntu Latest - Emscripten"
os: ubuntu-latest
cc: "emcc"
cxx: "em++"
cmake: "emcmake cmake"
test: false
- name: "macOS Latest Clang"
os: macos-latest
artifact: "macos_clang.7z"
build_type: "Release"
cc: "clang"
cxx: "clang++"
cmake: cmake
test: true
steps:
- uses: actions/checkout@v2
- uses: seanmiddleditch/gha-setup-ninja@master
- name: Set Windows ENV
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
- name: Setup Emscripten
if: ${{ matrix.config.cc == 'emcc' }}
uses: mymindstorm/setup-emsdk@v7
- name: Build
run: >
mkdir build;
cd build;
${{ matrix.config.cmake }}
..
-DCMAKE_CXX_COMPILER=${{ matrix.config.cxx }}
-DFTXUI_BUILD_TESTS=ON;
cmake --build . --config Release;
- name: Tests
if: ${{ matrix.config.test }}
run: >
cd build;
./tests

26
.github/workflows/linux-clang.yaml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Linux Clang - Build & tests
on:
- pull_request
jobs:
build:
name: Linux Clang
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: seanmiddleditch/gha-setup-ninja@master
- name: Build
run: >
mkdir build;
cd build;
cmake ..
-DCMAKE_CXX_COMPILER=clang++-9
-DFTXUI_BUILD_TESTS=ON;
cmake --build . --config Release;
- name: Tests
if: ${{ matrix.config.test }}
run: >
cd build;
./tests

20
.github/workflows/linux-emscripten.yaml vendored Normal file
View File

@ -0,0 +1,20 @@
name: Linux Emscripten - Build
on:
- pull_request
jobs:
build:
name: Linux Emscripten
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: seanmiddleditch/gha-setup-ninja@master
- uses: mymindstorm/setup-emsdk@v7
- name: Build
run: >
mkdir build;
cd build;
emcmake cmake ..
-DFTXUI_BUILD_TESTS=ON;
cmake --build . --config Release;

25
.github/workflows/linux-gcc.yaml vendored Normal file
View File

@ -0,0 +1,25 @@
name: Linux GCC - Build & tests
on:
- pull_request
jobs:
build:
name: Linux GCC
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: seanmiddleditch/gha-setup-ninja@master
- name: Build
run: >
mkdir build;
cd build;
cmake ..
-DCMAKE_CXX_COMPILER=g++-9
-DFTXUI_BUILD_TESTS=ON;
cmake --build . --config Release;
- name: Tests
run: >
cd build;
./tests

View File

@ -55,7 +55,7 @@ A simple C++ library for terminal based user interface.
# Documentation:
- [Starter example project](https://github.com/ArthurSonzogni/ftxui-starter)
- [Documentation](https://arthursonzogni.com/FTXUI/doc/) (Work in progress)
- [Documentation](https://arthursonzogni.com/FTXUI/doc/)
- [Build using CMake](https://arthursonzogni.com/FTXUI/doc/#build-using-cmake)
- [Build using nxxm](https://arthursonzogni.com/FTXUI/doc/#build-using-cmake)