Skip to content

Update CI setup

Update CI setup #262

Workflow file for this run

name: cmake
on: [push, pull_request]
env:
DESTDIR: ${{ github.workspace }}/build/tmp
jobs:
linux:
strategy:
matrix:
include:
- container: debian:11
- container: debian:12
- container: ubuntu:22.04
- container: ubuntu:24.04
runs-on: ubuntu-latest
container:
image: ${{ matrix.container }}
steps:
- uses: actions/checkout@v4
- name: Set up dependencies
run: |
apt-get update -qq
apt-get install -yqq cmake g++ libfluidsynth-dev liblo-dev libmagic-dev libsndfile1-dev libx11-dev lsb-release pkg-config
echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}"
- name: configure
run: cmake -S cmake -B build
- name: build
run: cmake --build build -j $(nproc)
- name: install
run: cmake --install build --verbose
- uses: actions/upload-artifact@v4
with:
name: linux-${{ env.PACK_NAME }}
path: ${{ env.DESTDIR }}
macos:
strategy:
matrix:
include:
- frameworks: ON
- frameworks: OFF
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Set up dependencies
run: |
brew install cmake fluid-synth liblo libmagic libsndfile pkg-config
if [ "${{ matrix.frameworks }}" = "" ]; then
echo "PACK_NAME=frameworks" >> "${GITHUB_ENV}"
else
echo "PACK_NAME=libs" >> "${GITHUB_ENV}"
fi
- name: configure
run: cmake -S cmake -B build -DCARLA_BUILD_FRAMEWORKS=${{ matrix.frameworks }}
- name: build
run: cmake --build build -j $(sysctl -n hw.logicalcpu)
- name: install
run: cmake --install build --verbose
- uses: actions/upload-artifact@v4
with:
name: macos-${{ env.PACK_NAME }}-${{ matrix.frameworks }}
path: ${{ env.DESTDIR }}
mingw32-cross:
strategy:
matrix:
include:
- container: debian:11
- container: debian:12
- container: ubuntu:22.04
- container: ubuntu:24.04
runs-on: ubuntu-latest
container:
image: ${{ matrix.container }}
steps:
- uses: actions/checkout@v4
- name: Set up dependencies
run: |
dpkg --add-architecture i386
apt-get update -qq
apt-get install -yqq cmake binutils-mingw-w64-i686 gcc g++-mingw-w64 lsb-release mingw-w64 pkg-config
if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then
apt-get install -yqq wine wine32 wine64
else
apt-get install -yqq wine-stable
fi
echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}"
- name: configure
env:
PKG_CONFIG: false
run: cmake -S cmake -B build -DCMAKE_CROSSCOMPILING=ON -DCMAKE_CROSSCOMPILING_EMULATOR=wine -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=i686 -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++ -DCMAKE_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_C_COMPILER_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_CXX_COMPILER_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_C_COMPILER_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_RC_COMPILER=/usr/bin/i686-w64-mingw32-windres
- name: build
run: cmake --build build -j $(nproc)
- name: install
run: cmake --install build --verbose
- uses: actions/upload-artifact@v4
with:
name: mingw32-${{ env.PACK_NAME }}
path: ${{ env.DESTDIR }}
mingw64-cross:
strategy:
matrix:
include:
- container: debian:11
- container: debian:12
- container: ubuntu:22.04
- container: ubuntu:24.04
runs-on: ubuntu-latest
container:
image: ${{ matrix.container }}
steps:
- uses: actions/checkout@v4
- name: Set up dependencies
run: |
dpkg --add-architecture i386
apt-get update -qq
apt-get install -yqq cmake binutils-mingw-w64-x86-64 gcc g++-mingw-w64 lsb-release mingw-w64 pkg-config
if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then
apt-get install -yqq wine wine32 wine64
else
apt-get install -yqq wine-stable
fi
echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}"
- name: configure
env:
PKG_CONFIG: false
run: cmake -S cmake -B build -DCMAKE_CROSSCOMPILING=ON -DCMAKE_CROSSCOMPILING_EMULATOR=wine -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DCMAKE_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_C_COMPILER_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_CXX_COMPILER_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_C_COMPILER_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_RC_COMPILER=/usr/bin/x86_64-w64-mingw32-windres
- name: build
run: cmake --build build -j $(nproc)
- name: install
run: cmake --install build --verbose
- uses: actions/upload-artifact@v4
with:
name: mingw64-${{ env.PACK_NAME }}
path: ${{ env.DESTDIR }}
windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: configure
run: cmake -S cmake -B build
- name: build
run: cmake --build build
# FIXME fails with error
# https://github.com/falkTX/Carla/actions/runs/5137608233/jobs/9245932221
#- name: install
#run: cmake --install build --verbose