Add docker files for building wine libs more easily #261
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: release | |
on: [push, pull_request] | |
env: | |
CACHE_VERSION: 1 | |
DEBIAN_FRONTEND: noninteractive | |
HOMEBREW_NO_AUTO_UPDATE: 1 | |
HOMEBREW_NO_INSTALL_CLEANUP: 1 | |
PAWPAW_SKIP_LTO: 1 | |
PAWPAW_SKIP_TESTS: 1 | |
PAWPAW_VERSION: 9534e2b4f9bafc993e05fada89b824f3a2176708 | |
jobs: | |
# macOS native universal build | |
macos_universal: | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Set up cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/PawPawBuilds | |
key: macos-universal-v${{ env.CACHE_VERSION }} | |
- name: Set up dependencies | |
run: | | |
brew install cmake jq meson | |
- name: Bootstrap macOS universal | |
shell: bash | |
run: | | |
git clone https://github.com/DISTRHO/PawPaw.git | |
git -C PawPaw checkout ${{ env.PAWPAW_VERSION }} | |
./PawPaw/.github/workflows/bootstrap-deps.sh macos-universal | |
./PawPaw/bootstrap-carla.sh macos-universal && ./PawPaw/.cleanup.sh macos-universal | |
- name: Build macOS universal | |
shell: bash | |
run: | | |
source PawPaw/local.env macos-universal | |
make features | |
make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} -j 1 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: macOS dmg | |
path: ./*.dmg | |
- uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
tag_name: ${{ github.ref_name }} | |
name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
files: | | |
./*.dmg | |
# linux with win32 cross-compilation | |
win32: | |
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: win32-v${{ env.CACHE_VERSION }} | |
- name: Restore debian packages cache | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ | |
fi | |
- 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 | |
sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 | |
- name: Set up dependencies | |
run: | | |
sudo apt-get install -y build-essential curl cmake jq meson mingw-w64 gperf qttools5-dev qttools5-dev-tools xvfb \ | |
binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable | |
- name: Cache debian packages | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Bootstrap win32 cross-compiled | |
shell: bash | |
run: | | |
git clone https://github.com/DISTRHO/PawPaw.git | |
git -C PawPaw checkout ${{ env.PAWPAW_VERSION }} | |
./PawPaw/.github/workflows/bootstrap-deps.sh win32 | |
./PawPaw/bootstrap-carla.sh win32 && ./PawPaw/.cleanup.sh win32 | |
- name: Build win32 cross-compiled | |
shell: bash | |
run: | | |
source PawPaw/local.env win32 | |
make features | |
make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} -j 1 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: win32 zip | |
path: ./*.zip | |
- uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
tag_name: ${{ github.ref_name }} | |
name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
files: | | |
./*.zip | |
# linux with win64 cross-compilation | |
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: win64-v${{ env.CACHE_VERSION }} | |
- name: Restore debian packages cache | |
run: | | |
if [ -d ~/PawPawBuilds/debs ] && [ "$(ls ~/PawPawBuilds/debs | wc -l)" -ne 0 ]; then \ | |
sudo cp ~/PawPawBuilds/debs/*.deb /var/cache/apt/archives/; \ | |
fi | |
- 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 | |
sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 | |
- name: Set up dependencies | |
run: | | |
sudo apt-get install -y build-essential curl cmake jq meson mingw-w64 gperf qttools5-dev qttools5-dev-tools xvfb \ | |
binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable | |
- name: Cache debian packages | |
run: | | |
mkdir -p ~/PawPawBuilds/debs | |
sudo mv /var/cache/apt/archives/*.deb ~/PawPawBuilds/debs/ | |
- name: Bootstrap win64 cross-compiled | |
shell: bash | |
run: | | |
git clone https://github.com/DISTRHO/PawPaw.git | |
git -C PawPaw checkout ${{ env.PAWPAW_VERSION }} | |
./PawPaw/.github/workflows/bootstrap-deps.sh win64 | |
./PawPaw/bootstrap-carla.sh win64 && ./PawPaw/.cleanup.sh win64 | |
- name: Build win64 cross-compiled | |
shell: bash | |
run: | | |
source PawPaw/local.env win64 | |
make features | |
make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} | |
make EXTERNAL_PLUGINS=false NOOPT=true ${MAKE_ARGS} win32r | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} TESTING=true -j 1 | |
make dist ${MAKE_ARGS} -j 1 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: win64 zip | |
path: ./*.zip | |
- uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
tag_name: ${{ github.ref_name }} | |
name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
files: | | |
./*.zip |