Build and Release Lexbor Binaries #24
Workflow file for this run
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 and Release Lexbor Binaries | |
on: | |
push: | |
tags: | |
- 'lexbor-v*' | |
jobs: | |
build-macos-arm64: | |
name: Build macos arm64 | |
runs-on: macos-13 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake-files/macos-arm64.cmake -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macos_arm64 | |
path: lexbor/install/lib/liblexbor_static.a | |
build-macos-x64: | |
name: Build macos x64 | |
runs-on: macos-13 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake-files/macos-x64.cmake -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macos_x64 | |
path: lexbor/install/lib/liblexbor_static.a | |
build-ios-arm64: | |
name: Build iOS arm64 | |
runs-on: macos-13 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake-files/ios-arm64.cmake -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios_arm64 | |
path: lexbor/install/lib/liblexbor_static.a | |
build-ios-simulator-arm64: | |
name: Build iOS simulator arm64 | |
runs-on: macos-13 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake-files/ios-simulator-arm64.cmake -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios_simulator_arm64 | |
path: lexbor/install/lib/liblexbor_static.a | |
build-ios-x64: | |
name: Build iOS x64 | |
runs-on: macos-13 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake-files/ios-x64.cmake -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios_x64 | |
path: lexbor/install/lib/liblexbor_static.a | |
build-linux-x64: | |
name: Build Linux x64 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux_x64 | |
path: lexbor/install/lib/liblexbor_static.a | |
build-linux-arm64: | |
name: Build Linux arm64 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- run: sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu binutils-aarch64-linux-gnu | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake-files/linux-arm64.cmake -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux_arm64 | |
path: lexbor/install/lib/liblexbor_static.a | |
build-windows-x64: | |
name: Build Windows x64 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- run: sudo apt-get install -y mingw-w64 | |
- name: Build Lexbor | |
run: | | |
cd lexbor | |
mkdir build && mkdir install | |
cd build | |
cmake .. -DCMAKE_TOOLCHAIN_FILE=../../cmake-files/windows-x64.cmake -DCMAKE_INSTALL_PREFIX=../install -DLEXBOR_BUILD_SHARED=OFF | |
make | |
make install | |
- name: Archive production artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: mingw_x64 | |
path: lexbor/install/lib/liblexbor_static.a | |
create-release: | |
name: Create Release | |
runs-on: ubuntu-latest | |
needs: [ build-windows-x64, build-linux-arm64, build-linux-x64, build-ios-x64, build-ios-simulator-arm64, build-ios-arm64, build-macos-x64, build-macos-arm64 ] | |
permissions: | |
contents: write | |
steps: | |
- name: Download Build Artifacts | |
uses: actions/download-artifact@v3 | |
- run: | | |
zip -r mingw_x64.zip mingw_x64 | |
zip -r linux_arm64.zip linux_arm64 | |
zip -r linux_x64.zip linux_x64 | |
zip -r ios_x64.zip ios_x64 | |
zip -r ios_arm64.zip ios_arm64 | |
zip -r ios_simulator_arm64.zip ios_simulator_arm64 | |
zip -r macos_x64.zip macos_x64 | |
zip -r macos_arm64.zip macos_arm64 | |
- name: Upload Artifacts to Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
mingw_x64.zip | |
linux_arm64.zip | |
linux_x64.zip | |
ios_x64.zip | |
ios_arm64.zip | |
ios_simulator_arm64.zip | |
macos_x64.zip | |
macos_arm64.zip |