name: build on: [push, pull_request] env: DEBIAN_FRONTEND: noninteractive EMSCRIPTEN_VERSION: 3.1.27 HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALL_CLEANUP: 1 jobs: linux: strategy: matrix: include: - target: debian:11 - target: debian:12 - target: ubuntu:18.04 - target: ubuntu:20.04 - target: ubuntu:22.04 runs-on: ubuntu-latest container: image: ${{ matrix.target }} steps: - uses: actions/checkout@v3 - name: Set up dependencies run: | dpkg --add-architecture i386 apt-get update -qq apt-get install -yqq g++-multilib libasound2-dev libfluidsynth-dev libgl1-mesa-dev liblo-dev libmagic-dev libpulse-dev libsdl2-dev libsndfile1-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev make pkg-config pyqt5-dev-tools qtbase5-dev apt-get install -yqq libx11-6:i386 libxext6:i386 # Fix 32bit bridge build ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so ln -s /usr/lib/i386-linux-gnu/libXext.so.6 /usr/lib/i386-linux-gnu/libXext.so - name: make features run: make features - name: make run: make -j $(nproc) - name: make posix32 run: make posix32 -j $(nproc) macos: strategy: matrix: include: #- target: macos-11 - target: macos-12 runs-on: ${{ matrix.target }} steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Set up dependencies run: | brew install fluid-synth liblo libmagic libsndfile pkg-config pyqt@5 qt@5 sdl2 - name: make features run: make features - name: make run: make -j $(sysctl -n hw.logicalcpu) wasm: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Set up cache id: cache uses: actions/cache@v3 with: path: | ~/emsdk key: emsdk-v1 - name: Set up dependencies run: | [ -d ~/emsdk ] || git clone https://github.com/emscripten-core/emsdk.git ~/emsdk cd ~/emsdk && ./emsdk install ${{ env.EMSCRIPTEN_VERSION }} && ./emsdk activate ${{ env.EMSCRIPTEN_VERSION }} - name: make env: AR: emar CC: emcc CXX: em++ NM: emnm RANLIB: emranlib STRIP: emstrip PKG_CONFIG: false run: | source ~/emsdk/emsdk_env.sh make features make -j $(nproc)