Extend CI setup to make it suitable for ReactUnity #87
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Binaries | |
on: | |
- push | |
- pull_request | |
- workflow_dispatch | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup-cpp | |
with: | |
toolchain: GCC | |
- name: Setup JS | |
uses: ./.github/actions/setup-js | |
- name: Restore emsdk | |
uses: ./.github/actions/cache-emsdk | |
- name: Build | |
run: | | |
cmake -B build -S yoga -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -G Ninja | |
cmake --build build --config Release | |
mkdir -p dist/linux | |
cp build/libyogacore.so dist/linux/libyoga.so | |
- name: Build JS | |
working-directory: javascript | |
run: | | |
yarn build | |
mkdir -p ../dist/webgl | |
cp build/libyogaObjLib.a ../dist/webgl/libyoga.a | |
- name: Upload Binaries | |
uses: actions/upload-artifact@v3 | |
if: github.event_name == 'push' | |
with: | |
path: dist/** | |
name: prebuilt_yoga_binaries | |
build-macos: | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup-cpp | |
with: | |
toolchain: CLang | |
- name: Setup Apple | |
uses: ./.github/actions/setup-apple | |
- name: Build | |
run: | | |
cmake -B build -S yoga -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" | |
cmake --build build --config Release | |
mkdir -p dist/osx | |
cp build/libyogacore.dylib dist/osx/libyoga.dylib | |
- name: Build IOS | |
run: | | |
rm -rf build | |
cmake -B build -S yoga -D CMAKE_BUILD_TYPE=Release -G Xcode -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_Swift_COMPILER_FORCED=true -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 | |
cmake --build build --config Release | |
mkdir -p dist/iOS | |
cp build/Release-iphoneos/libyogacore.a dist/iOS/libyoga.a | |
- name: Upload Binaries | |
uses: actions/upload-artifact@v3 | |
if: github.event_name == 'push' | |
with: | |
path: dist/** | |
name: prebuilt_yoga_binaries | |
build-windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup | |
uses: ./.github/actions/setup-cpp | |
with: | |
toolchain: MSVC | |
- name: Build | |
run: | | |
cmake -B build -S yoga -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON | |
cmake -B build32 -S yoga -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=ON -A Win32 | |
cmake --build build --config Release | |
cmake --build build32 --config Release | |
mkdir -p dist/win-x64 dist/win-x86 | |
cp build/Release/yogacore.dll dist/win-x64/yoga.dll | |
cp build32/Release/yogacore.dll dist/win-x86/yoga.dll | |
- name: Upload Binaries | |
uses: actions/upload-artifact@v3 | |
if: github.event_name == 'push' | |
with: | |
path: dist/** | |
name: prebuilt_yoga_binaries | |
build-android: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/setup-android | |
- name: Build | |
run: | | |
./gradlew :yoga:assembleRelease | |
mkdir -p dist/android | |
cp java/build/outputs/aar/yoga-release.aar dist/android/yoga.aar | |
- name: Upload Binaries | |
uses: actions/upload-artifact@v3 | |
if: github.event_name == 'push' | |
with: | |
path: dist/** | |
name: prebuilt_yoga_binaries | |