Skip to content

Build and Release Lexbor Binaries #24

Build and Release Lexbor Binaries

Build and Release Lexbor Binaries #24

Workflow file for this run

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