Skip to content

Test workflow #33

Test workflow

Test workflow #33

Workflow file for this run

name: Build for MacOS, Linux, and Windows
on: [push, pull_request]
jobs:
build-macos-arm64:
runs-on: macos-latest
strategy:
matrix:
arch: [arm64] # Mac architectures: ARM
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: miniaudioex-build-macos-arm64
path: build/
build-macos-x86_64:
runs-on: macos-13
strategy:
matrix:
arch: [x86_64] # Mac architecture: 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: miniaudioex-build-macos-x86_64
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: miniaudioex-build-linux-x86_64
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: miniaudioex-build-linux-arm64
path: build/
build-linux-arm32:
runs-on: ubuntu-22.04-arm
strategy:
matrix:
arch: [arm64] # 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 g++-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: miniaudioex-build-linux-arm
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: miniaudioex-build-windows-${{ matrix.name }}
path: build/