Skip to content

Cross-Platform Build and Deploy #28

Cross-Platform Build and Deploy

Cross-Platform Build and Deploy #28

name: Cross-Platform Build and Deploy
on:
workflow_dispatch: # manually trigger
jobs:
build-windows-MSVC:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Build for Windows
run: |
cd build\lib\win64
.\Build_Dynamic_Lib_MSVC.bat
.\Build_Static_Lib_MSVC.bat
env:
VS_PATH: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Common7\\IDE"
build-windows-Clang:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Build for Windows
run: |
cd build\lib\win64
.\Build_Dynamic_Lib_Clang.bat
.\Build_Static_Lib_Clang.bat
env:
VS_PATH: "C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\\Common7\\IDE"
build-windows-android:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Set up NDK
uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r26
local-cache: false
- name: Build for Windows Android
run: |
cd build\lib\android
.\Win_Build_Dynamic_Lib.bat
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
build-linux-Clang:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./GenerateDynamicLib_Clang.sh
./GenerateStaticLib_Clang.sh
build-linux-GCC:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Build for Linux
run: |
cd build/lib/linux
chmod +x *.sh
./GenerateDynamicLib_GCC.sh
./GenerateStaticLib_GCC.sh
build-macos:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Set up XCode
run: sudo xcode-select --switch /Applications/Xcode.app
- name: Build for macOS
run: |
cd build/lib/mac
chmod +x *.sh
./GenerateDynamicLib_AllFormat.sh
./GenerateStaticLib_AllFormat.sh
build-ios:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up XCode for iOS
run: sudo xcode-select --switch /Applications/Xcode.app
- name: Build for iOS
run: |
cd build/lib/ios
chmod +x *.sh
./MacGenerator.sh
build-mac-android:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Set up NDK
uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r26
local-cache: false
- name: Build for Mac Android
run: |
cd build/lib/android
chmod +x *.sh
./Mac_Build_Dynamic_Lib.sh
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
build-freebsd-clang:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Run in FreeBSD
id: RunInFreeBSD
uses: vmactions/freebsd-vm@v1
with:
usesh: true
prepare: |
pkg install -y gcc cmake bash openjdk11
run: |
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
./GenerateDynamicLib_Clang.sh
./GenerateStaticLib_Clang.sh
build-freebsd-gcc:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Run in FreeBSD
id: RunInFreeBSD
uses: vmactions/freebsd-vm@v1
with:
usesh: true
prepare: |
pkg install -y gcc cmake bash openjdk11
run: |
pkg info -l openjdk11 | grep 'bin/java'
export JAVA_HOME="/usr/local/openjdk11"
export PATH="$JAVA_HOME/bin:$PATH"
echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV
echo "PATH=$PATH" >> $GITHUB_ENV
cd build/lib/unix_like
chmod +x *.sh
./GenerateDynamicLib_GCC.sh
./GenerateStaticLib_GCC.sh
build-debian-clang:
runs-on: ubuntu-latest
container:
image: debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV
- name: Build for Debian
run: |
cd build/lib/unix_like
ls
chmod +x *.sh
./GenerateDynamicLib_Clang.sh
./GenerateStaticLib_Clang.sh
build-debian-gcc:
runs-on: ubuntu-latest
container:
image: debian:latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install necessary tools (gcc and clang)
run: |
apt-get update
apt-get install -y gcc clang g++ make cmake
apt-get install -y software-properties-common
apt-get update
apt-get install -y openjdk-17-jdk
- name: Set up Java
run: |
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> $GITHUB_ENV
- name: Build for Debian
run: |
cd build/lib/unix_like
ls
chmod +x *.sh
./GenerateDynamicLib_GCC.sh
./GenerateStaticLib_GCC.sh