Rework and simplify CI file #232
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 | |
on: [push, pull_request] | |
env: | |
CACHE_VERSION: 1 | |
DEBIAN_FRONTEND: noninteractive | |
PAWPAW_SKIP_LTO: 1 | |
PAWPAW_SKIP_FFTW: 1 | |
PAWPAW_SKIP_GLIB: 1 | |
PAWPAW_SKIP_LV2: 1 | |
PAWPAW_SKIP_SAMPLERATE: 1 | |
PAWPAW_SKIP_TESTS: 1 | |
WITH_LTO: false | |
jobs: | |
linux: | |
strategy: | |
matrix: | |
target: [aarch64, armhf, i686, riscv64, x86_64] | |
runs-on: ubuntu-latest | |
container: | |
image: ubuntu:20.04 | |
steps: | |
- name: Install git | |
run: | | |
apt-get update -qq && apt-get install -yqq --no-install-recommends ca-certificates curl git openssl | |
curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git_2.34.1-1ubuntu1~bpo20.04.1~ppa1_amd64.deb | |
curl -sLO https://launchpad.net/~kxstudio-debian/+archive/ubuntu/toolchain/+files/git-man_2.34.1-1ubuntu1~bpo20.04.1~ppa1_all.deb | |
dpkg -i *.deb | |
rm *.deb | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: linux-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: Set up dependencies | |
run: | | |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git | |
./PawPaw/.github/workflows/bootstrap-deps.sh linux-${{ matrix.target }} | |
- name: Build extra dependencies | |
run: | | |
./PawPaw/bootstrap-cardinal.sh linux-${{ matrix.target }} && ./PawPaw/.cleanup.sh linux-${{ matrix.target }} | |
- name: Build linux | |
shell: bash | |
run: | | |
source PawPaw/local.env linux-${{ matrix.target }} | |
make features | |
make NOOPT=true -j $(nproc) | |
- name: Build linux x86_64 extra (part1) | |
if: ${{ matrix.target == 'x86_64' }} | |
shell: bash | |
run: | | |
source PawPaw/local.env linux-${{ matrix.target }} | |
make NOOPT=true all extra-posix32 extra-win32 extra-win64 extra-wine64 -j $(nproc) | |
- name: Build linux x86_64 extra (part2) | |
if: ${{ matrix.target == 'x86_64' }} | |
shell: bash | |
run: | | |
sudo apt-get install -yqq libwine-dev:i386 | |
source PawPaw/local.env linux | |
make NOOPT=true extra-wine32 -j $(nproc) | |
make CARLA_EXTRA_TARGETS=true NOOPT=true -j $(nproc) | |
- name: Set sha8 | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.event.repository.name }}-linux-${{ matrix.target }}-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
!bin/Ildaeil | |
macos: | |
strategy: | |
matrix: | |
target: [intel, universal] | |
runs-on: macos-11 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: macos-${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: Set up dependencies | |
run: | | |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git | |
./PawPaw/.github/workflows/bootstrap-deps.sh macos-${{ matrix.target }} | |
- name: Build extra dependencies | |
run: | | |
./PawPaw/bootstrap-cardinal.sh macos-${{ matrix.target }} && ./PawPaw/.cleanup.sh macos-${{ matrix.target }} | |
- name: Build macOS | |
run: | | |
source PawPaw/local.env macos-${{ matrix.target }} | |
make features | |
make NOOPT=true -j $(sysctl -n hw.logicalcpu) | |
- name: Pack macOS | |
run: | | |
source PawPaw/local.env macos-${{ matrix.target }} | |
./dpf/utils/package-osx-bundles.sh | |
- name: Set sha8 | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.event.repository.name }}-macOS-${{ matrix.target }}-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
*-macOS.pkg | |
bin/* | |
!bin/pkg | |
!bin/*.clap | |
!bin/*.lv2 | |
!bin/*.vst | |
!bin/*.vst3 | |
windows: | |
strategy: | |
matrix: | |
target: [win32, win64] | |
runs-on: ubuntu:22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: ${{ matrix.target }}-v${{ env.CACHE_VERSION }} | |
- name: Fix GitHub's mess | |
run: | | |
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list | |
sudo dpkg --add-architecture i386 | |
sudo apt-get update -qq | |
- name: Set up dependencies | |
run: | | |
git clone --depth=1 https://github.com/DISTRHO/PawPaw.git | |
./PawPaw/.github/workflows/bootstrap-deps.sh ${{ matrix.target }} | |
- name: Build extra dependencies | |
run: | | |
./PawPaw/bootstrap-cardinal.sh ${{ matrix.target }} && ./PawPaw/.cleanup.sh ${{ matrix.target }} | |
- name: Build cross-compiled | |
run: | | |
source PawPaw/local.env ${{ matrix.target }} | |
make features | |
make CARLA_EXTRA_TARGETS=true NOOPT=true -j $(nproc) | |
- name: Set sha8 | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.event.repository.name }}-${{ matrix.target }}-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
bin/* | |
!bin/*.exe | |
pluginval: | |
runs-on: ubuntu:22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: distrho/dpf-makefile-action@v1 | |
with: | |
target: pluginval | |
source: | |
runs-on: ubuntu:22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: distrho/dpf-makefile-action@v1 | |
with: | |
target: source |