Test linux arm32 runner #21
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 for MacOS, Linux, and Windows | ||
on: [push, pull_request] | ||
jobs: | ||
build-macos: | ||
runs-on: macos-latest | ||
strategy: | ||
matrix: | ||
arch: [arm64, x86_64] # Mac architectures: ARM and Intel | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Set up dependencies on MacOS | ||
run: | | ||
echo "Setting up dependencies on MacOS ${{ matrix.arch }}" | ||
brew install cmake | ||
- name: Build the project on MacOS | ||
run: | | ||
echo "Building project on MacOS ${{ matrix.arch }}" | ||
mkdir build | ||
cd build | ||
cmake -DBUILD_PLATFORM=mac -DCMAKE_BUILD_TYPE=Release .. | ||
cmake --build . | ||
- name: Upload build artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: build-macos-${{ matrix.arch }} | ||
path: build/ | ||
build-linux: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
arch: [x86_64] # Linux architectures: x64 | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Set up dependencies on Linux | ||
run: | | ||
echo "Setting up dependencies on Linux ${{ matrix.arch }}" | ||
sudo apt-get update | ||
sudo apt-get install -y cmake | ||
- name: Build the project on Linux | ||
run: | | ||
echo "Building project on Linux ${{ matrix.arch }}" | ||
mkdir build | ||
cd build | ||
cmake -DBUILD_PLATFORM=linux_x86_64 -DCMAKE_BUILD_TYPE=Release .. | ||
cmake --build . | ||
- name: Upload build artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: build-linux-${{ matrix.arch }} | ||
path: build/ | ||
build-linux-arm64: | ||
runs-on: ubuntu-22.04-arm | ||
strategy: | ||
matrix: | ||
arch: [arm64] # Linux architecture: ARM64 | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Set up dependencies on Linux ARM64 | ||
run: | | ||
echo "Setting up dependencies on Linux ARM64 ${{ matrix.arch }}" | ||
sudo apt-get update | ||
sudo apt-get install -y cmake | ||
- name: Build the project on Linux ARM64 | ||
run: | | ||
echo "Building project on Linux ARM64 ${{ matrix.arch }}" | ||
mkdir build | ||
cd build | ||
cmake -DBUILD_PLATFORM=linux_arm64 -DCMAKE_BUILD_TYPE=Release .. | ||
cmake --build . | ||
- name: Upload build artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: build-linux-${{ matrix.arch }} | ||
path: build/ | ||
build-linux-arm32: | ||
runs-on: ubuntu-22.04-arm | ||
strategy: | ||
matrix: | ||
arch: [arm32] # Linux architecture: ARM32 | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Set up dependencies on Linux ARM32 | ||
run: | | ||
echo "Setting up dependencies on Linux ARM32 ${{ matrix.arch }}" | ||
sudo apt-get update | ||
sudo apt-get install -y cmake gcc-arm-linux-gnueabihf | ||
- name: Build the project on Linux ARM32 | ||
run: | | ||
echo "Building project on Linux ARM32 ${{ matrix.arch }}" | ||
mkdir build | ||
cd build | ||
cmake -DBUILD_PLATFORM=linux_arm -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc -DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++ .. | ||
cmake --build . | ||
- name: Upload build artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: build-linux-${{ matrix.arch }} | ||
path: build/ | ||
build-windows: | ||
runs-on: windows-latest | ||
strategy: | ||
matrix: | ||
name: [win32, x64] | ||
#arch: [x86, x86_64] # Windows architectures: x86 (32-bit) and x64 (64-bit) | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
- name: Set up dependencies on Windows | ||
run: | | ||
echo "Setting up dependencies on Windows ${{ matrix.name }}" | ||
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' | ||
- name: Build the project on Windows | ||
run: | | ||
echo "Building project on Windows ${{ matrix.name }}" | ||
mkdir build | ||
cd build | ||
cmake -A ${{ matrix.name }} -DBUILD_PLATFORM=windows -DCMAKE_BUILD_TYPE=Release .. | ||
cmake --build . --config Release | ||
- name: Upload build artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: build-windows-${{ matrix.name }} | ||
path: build/ |