Setup PawPaw and let it be used for CI extra deps (#93)

* Setup PawPaw and let it be used for CI extra deps

* Fix ci file

* Update readme

* Fix a typo

* Fix another typo

* Let PawPaw handle the build setup/env

* Fix typo

* One more fix

* Update AudibleInstruments

Signed-off-by: falkTX <falktx@falktx.com>

* Cleanup/Improve CardinalModuleWidget hackery

Signed-off-by: falkTX <falktx@falktx.com>

* Use LTO in PawPaw, fix build setup again

Signed-off-by: falkTX <falktx@falktx.com>

* Install libglib2.0-dev on CI static builds; Fix Prism conflicts

Signed-off-by: falkTX <falktx@falktx.com>

* Investigate why CI fails to install arch ports

Signed-off-by: falkTX <falktx@falktx.com>

* Ignore glib/fluidsynth for now

Signed-off-by: falkTX <falktx@falktx.com>

* Cleanup

Signed-off-by: falkTX <falktx@falktx.com>

* Fix a typo

Signed-off-by: falkTX <falktx@falktx.com>

* Fix another typo

Signed-off-by: falkTX <falktx@falktx.com>

* Use -m32 in linux-i686 builds

Signed-off-by: falkTX <falktx@falktx.com>

* Try using g++-multilib instead of g++-i686-linux-gnu

Signed-off-by: falkTX <falktx@falktx.com>

* Force fix macOS build

* Use shasum5.28
This commit is contained in:
Filipe Coelho 2021-12-14 22:16:37 +00:00 committed by GitHub
parent f998ee2ec3
commit 43951635e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 142 additions and 158 deletions

View file

@ -10,7 +10,7 @@ on:
env:
DEBIAN_FRONTEND: noninteractive
HOMEBREW_NO_AUTO_UPDATE: 1
LIBGL_ALWAYS_SOFTWARE: "true"
LIBGL_ALWAYS_SOFTWARE: 'true'
jobs:
linux-arm64:
@ -22,7 +22,11 @@ jobs:
- name: Set up ccache
uses: actions/cache@v2
with:
path: ~/.cache
path: |
${HOME}/.cache
${HOME}/PawPawBuilds/builds
${HOME}/PawPawBuilds/downloads
${HOME}/PawPawBuilds/targets
key: ccache-linux-arm64
- name: Set up dependencies
run: |
@ -32,22 +36,24 @@ jobs:
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-arm64.list
sudo apt-get update -qq
sudo apt-get install -yqq g++-aarch64-linux-gnu libgl1-mesa-dev:arm64 liblo-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 qemu-user-static
sudo apt-get install -yqq g++-aarch64-linux-gnu libdbus-1-dev:arm64 libgl1-mesa-dev:arm64 libx11-dev:arm64 libxcursor-dev:arm64 libxext-dev:arm64 libxrandr-dev:arm64 qemu-user-static
- name: Install ccache
run: |
sudo apt-get install -yqq ccache
ccache --set-config=cache_dir=~/.cache
ccache --set-config=cache_dir=${HOME}/.cache
ccache --set-config=compression=true
- name: Build linux arm64 cross-compiled
- name: Build extra dependencies
env:
CC: aarch64-linux-gnu-gcc
CXX: aarch64-linux-gnu-g++
LDFLAGS: -static-libgcc -static-libstdc++
PKG_CONFIG_PATH: /usr/lib/aarch64-linux-gnu/pkgconfig
run: |
export PATH="/usr/lib/ccache:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh linux-aarch64
- name: Build linux arm64 cross-compiled
run: |
export PATH="/usr/lib/ccache:${PATH}"
pushd deps/PawPaw; source local.env linux-aarch64; popd
make features
make WITH_LTO=true -j $(nproc)
make NOOPT=true WITH_LTO=true WITH_PAWPAW=true -j $(nproc)
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
@ -69,7 +75,11 @@ jobs:
- name: Set up ccache
uses: actions/cache@v2
with:
path: ~/.cache
path: |
${HOME}/.cache
${HOME}/PawPawBuilds/builds
${HOME}/PawPawBuilds/downloads
${HOME}/PawPawBuilds/targets
key: ccache-linux-armhf
- name: Set up dependencies
run: |
@ -79,22 +89,24 @@ jobs:
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list.d/ports-armhf.list
sudo apt-get update -qq
sudo apt-get install -yqq g++-arm-linux-gnueabihf libgl1-mesa-dev:armhf liblo-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf qemu-user-static
sudo apt-get install -yqq g++-arm-linux-gnueabihf libdbus-1-dev:armhf libgl1-mesa-dev:armhf libx11-dev:armhf libxcursor-dev:armhf libxext-dev:armhf libxrandr-dev:armhf qemu-user-static
- name: Install ccache
run: |
sudo apt-get install -yqq ccache
ccache --set-config=cache_dir=~/.cache
ccache --set-config=cache_dir=${HOME}/.cache
ccache --set-config=compression=true
- name: Build linux armhf cross-compiled
- name: Build extra dependencies
env:
CC: arm-linux-gnueabihf-gcc
CXX: arm-linux-gnueabihf-g++
LDFLAGS: -static-libgcc -static-libstdc++
PKG_CONFIG_PATH: /usr/lib/arm-linux-gnueabihf/pkgconfig
run: |
export PATH="/usr/lib/ccache:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh linux-armhf
- name: Build linux armhf cross-compiled
run: |
export PATH="/usr/lib/ccache:${PATH}"
pushd deps/PawPaw; source local.env linux-armhf; popd
make features
make WITH_LTO=true -j $(nproc)
make NOOPT=true WITH_LTO=true WITH_PAWPAW=true -j $(nproc)
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
@ -107,7 +119,7 @@ jobs:
path: |
*.tar.gz
linux-x86:
linux-i686:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
@ -116,39 +128,43 @@ jobs:
- name: Set up ccache
uses: actions/cache@v2
with:
path: ~/.cache
key: ccache-linux-x86
path: |
${HOME}/.cache
${HOME}/PawPawBuilds/builds
${HOME}/PawPawBuilds/downloads
${HOME}/PawPawBuilds/targets
key: ccache-linux-i686
- name: Set up dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update -qq
sudo apt-get install -yqq g++-i686-linux-gnu libgl1-mesa-dev:i386 liblo-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386
sudo apt-get install -yqq g++-multilib libdbus-1-dev:i386 libgl1-mesa-dev:i386 libx11-dev:i386 libxcursor-dev:i386 libxext-dev:i386 libxrandr-dev:i386
- name: Install ccache
run: |
sudo apt-get install -yqq ccache
ccache --set-config=cache_dir=~/.cache
ccache --set-config=cache_dir=${HOME}/.cache
ccache --set-config=compression=true
- name: Build linux x86
- name: Build extra dependencies
env:
CC: i686-linux-gnu-gcc
CXX: i686-linux-gnu-g++
CFLAGS: -m32
CXXFLAGS: -m32
LDFLAGS: -m32 -static-libgcc -static-libstdc++
PKG_CONFIG_PATH: /usr/lib/i386-linux-gnu/pkgconfig
run: |
export PATH="/usr/lib/ccache:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh linux-i686
- name: Build linux i686
run: |
export PATH="/usr/lib/ccache:${PATH}"
pushd deps/PawPaw; source local.env linux-i686; popd
make features
make WITH_LTO=true -j $(nproc)
make NOOPT=true WITH_LTO=true WITH_PAWPAW=true -j $(nproc)
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
- name: Pack binaries
run: |
tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-x86-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst)
tar -c -h --hard-dereference -z -f ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C bin $(ls bin | grep -e lv2 -e vst)
- uses: actions/upload-artifact@v2
with:
name: ${{ github.event.repository.name }}-linux-x86-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
name: ${{ github.event.repository.name }}-linux-i686-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}
path: |
*.tar.gz
@ -161,24 +177,31 @@ jobs:
- name: Set up ccache
uses: actions/cache@v2
with:
path: ~/.cache
path: |
${HOME}/.cache
${HOME}/PawPawBuilds/builds
${HOME}/PawPawBuilds/downloads
${HOME}/PawPawBuilds/targets
key: ccache-linux-x86_64
- name: Set up dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -yqq libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev
- name: Install ccache
run: |
sudo apt-get install -yqq ccache
ccache --set-config=cache_dir=~/.cache
ccache --set-config=cache_dir=${HOME}/.cache
ccache --set-config=compression=true
- name: Build linux x86_64
env:
LDFLAGS: -static-libgcc -static-libstdc++
- name: Build extra dependencies
run: |
export PATH="/usr/lib/ccache:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh linux
- name: Build linux x86_64
run: |
export PATH="/usr/lib/ccache:${PATH}"
pushd deps/PawPaw; source local.env linux; popd
make features
make WITH_LTO=true -j $(nproc)
make NOOPT=true WITH_LTO=true WITH_PAWPAW=true -j $(nproc)
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
@ -243,7 +266,7 @@ jobs:
- name: Set up dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -yqq libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev libarchive-dev libjansson-dev libsamplerate0-dev libspeexdsp-dev
sudo apt-get install -yqq libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev libarchive-dev libjansson-dev libsamplerate0-dev libsndfile1-dev libspeexdsp-dev
- name: Build linux x86_64 (sysdeps)
run: |
make features
@ -258,26 +281,31 @@ jobs:
- name: Set up ccache
uses: actions/cache@v2
with:
path: ~/.cache
path: |
${HOME}/.cache
${HOME}/PawPawBuilds/builds
${HOME}/PawPawBuilds/downloads
${HOME}/PawPawBuilds/targets
key: ccache-win32
- name: Install ccache
run: |
brew install ccache
ccache --set-config=cache_dir=~/.cache
ccache --set-config=cache_dir=${HOME}/.cache
ccache --set-config=compression=true
- name: Fix up Xcode
run: |
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*
sudo xcode-select -s "/Applications/Xcode_12.3.app"
- name: Build macOS universal
env:
CFLAGS: -arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2
CXXFLAGS: -arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2
LDFLAGS: -arch x86_64 -arch arm64 -mmacosx-version-min=10.12
- name: Build extra dependencies
run: |
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh macos-universal
- name: Build macOS universal
run: |
export PATH="/usr/local/opt/ccache/libexec:${PATH}"
pushd deps/PawPaw; source local.env macos-universal; popd
make features
make NOOPT=true WITH_LTO=true -j $(sysctl -n hw.logicalcpu)
make NOOPT=true WITH_LTO=true WITH_PAWPAW=true -j $(sysctl -n hw.logicalcpu)
./dpf/utils/package-osx-bundles.sh
- name: Set sha8
id: slug
@ -297,7 +325,11 @@ jobs:
- name: Set up ccache
uses: actions/cache@v2
with:
path: ~/.cache
path: |
${HOME}/.cache
${HOME}/PawPawBuilds/builds
${HOME}/PawPawBuilds/downloads
${HOME}/PawPawBuilds/targets
key: ccache-win32
- name: Set up dependencies
run: |
@ -308,21 +340,18 @@ jobs:
- name: Install ccache
run: |
sudo apt-get install -yqq ccache
ccache --set-config=cache_dir=~/.cache
ccache --set-config=cache_dir=${HOME}/.cache
ccache --set-config=compression=true
- name: Build win32 cross-compiled
env:
CC: i686-w64-mingw32-gcc
CXX: i686-w64-mingw32-g++
EXE_WRAPPER: wine
PKG_CONFIG: "false"
WINEARCH: "win32"
WINEDEBUG: "-all"
WINEDLLOVERRIDES: "mscoree,mshtml="
- name: Build extra dependencies
run: |
export PATH="/usr/lib/ccache:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh win32
- name: Build win32 cross-compiled
run: |
export PATH="/usr/lib/ccache:${PATH}"
pushd deps/PawPaw; source local.env win32; popd
make features
make WITH_LTO=true -j $(nproc)
make NOOPT=true WITH_LTO=true WITH_PAWPAW=true -j $(nproc)
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"
@ -344,7 +373,11 @@ jobs:
- name: Set up ccache
uses: actions/cache@v2
with:
path: ~/.cache
path: |
${HOME}/.cache
${HOME}/PawPawBuilds/builds
${HOME}/PawPawBuilds/downloads
${HOME}/PawPawBuilds/targets
key: ccache-win64
- name: Set up dependencies
run: |
@ -353,21 +386,18 @@ jobs:
- name: Install ccache
run: |
sudo apt-get install -yqq ccache
ccache --set-config=cache_dir=~/.cache
ccache --set-config=cache_dir=${HOME}/.cache
ccache --set-config=compression=true
- name: Build win64 cross-compiled
env:
CC: x86_64-w64-mingw32-gcc
CXX: x86_64-w64-mingw32-g++
EXE_WRAPPER: wine
PKG_CONFIG: "false"
WINEARCH: "win64"
WINEDEBUG: "-all"
WINEDLLOVERRIDES: "mscoree,mshtml="
- name: Build extra dependencies
run: |
export PATH="/usr/lib/ccache:${PATH}"
./deps/PawPaw/bootstrap-cardinal.sh win64
- name: Build win64 cross-compiled
run: |
export PATH="/usr/lib/ccache:${PATH}"
pushd deps/PawPaw; source local.env win64; popd
make features
make WITH_LTO=true -j $(nproc)
make NOOPT=true WITH_LTO=true WITH_PAWPAW=true -j $(nproc)
- name: Set sha8
id: slug
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)"