Skip to content

Add docker files for building wine libs more easily #261

Add docker files for building wine libs more easily

Add docker files for building wine libs more easily #261

Workflow file for this run

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