Use GitHub Actions for CI

This commit is contained in:
Daniel Wolf 2021-06-19 11:24:47 +02:00
parent 0270a08523
commit 72a95654b6
3 changed files with 77 additions and 15 deletions

67
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,67 @@
on: push
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- description: Windows / Visual Studio
os: windows-2019
cmakeOptions: '-G "Visual Studio 16 2019" -A x64'
publish: true
- description: macOS / Xcode
os: macos-10.15
cmakeOptions: ""
publish: true
- description: Linux / GCC
os: ubuntu-20.04
cmakeOptions: "-D CMAKE_C_COMPILER=gcc-10 -D CMAKE_CXX_COMPILER=g++-10"
publish: true
- description: Linux / Clang
os: ubuntu-20.04
cmakeOptions: "-D CMAKE_C_COMPILER=clang-12 -D CMAKE_CXX_COMPILER=clang++-12"
publish: false
env:
BOOST_ROOT: ${{github.workspace}}/lib/boost
BOOST_URL: https://sourceforge.net/projects/boost/files/boost/1.76.0/boost_1_76_0.tar.bz2/download
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Restore Boost from cache
uses: actions/cache@v2
id: cache-boost
with:
path: ${{ env.BOOST_ROOT }}
key: ${{ env.BOOST_URL }}
- name: Download Boost
if: steps.cache-boost.outputs.cache-hit != 'true'
shell: bash
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
# use forward slashes only
BOOST_ROOT=$(echo $BOOST_ROOT | sed 's/\\/\//g')
fi
mkdir -p $BOOST_ROOT
curl --insecure -L $BOOST_URL | tar -xj --strip-components=1 -C $BOOST_ROOT
- name: Build Rhubarb
shell: bash
run: |
JAVA_HOME=$JAVA_HOME_11_X64
mkdir build
cd build
cmake ${{ matrix.cmakeOptions }} ..
cmake --build . --config Release --target package
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: binaries
path: build/*.zip
- name: Run tests
shell: bash
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
./build/rhubarb/Release/runTests.exe
else
./build/rhubarb/runTests
fi

View File

@ -1,5 +1,9 @@
# Version history
## Unreleased
* **Changed** Windows build from 32 bit to 64 bit
## Version 1.10.0
* **Added** switch data file exporter for Moho (formerly Anime Studio) and OpenToonz ([issue #69](https://github.com/DanielSWolf/rhubarb-lip-sync/issues/69))

View File

@ -1,28 +1,19 @@
cmake_minimum_required(VERSION 3.2)
cmake_minimum_required(VERSION 3.10)
include("../appInfo.cmake")
# Support legacy OS X versions
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.8" CACHE STRING "Minimum OS X deployment version")
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.10" CACHE STRING "Minimum OS X deployment version")
project(${appName})
# Enable C++17
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17")
endif()
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Enable POSIX threads
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -lpthread")
endif()
# Make sure Xcode uses libc++ instead of libstdc++, allowing us to use the C++14 standard library prior to OS X 10.9
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
add_compile_options(-stdlib=libc++)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++")
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
endif()
# Use static run-time