Skip to content

CI MSYS2: choose ucrt64 and use pacboy #479

CI MSYS2: choose ucrt64 and use pacboy

CI MSYS2: choose ucrt64 and use pacboy #479

Workflow file for this run

name: Build Pd Externals
on: [push, pull_request]
jobs:
linux:
runs-on: ubuntu-latest
steps:
- name: install Ubuntu packages
run: |
PACKAGES=(
libfftw3-dev
libmysofa-dev
puredata-dev
autogen
)
sudo apt-get install --no-install-recommends ${PACKAGES[@]}
- name: checkout ssr
uses: actions/checkout@v4
with:
submodules: true
path: ssr
- name: Build dependencies
working-directory: ssr/ci
run: |
sudo chown -R $(whoami):admin /usr/local
./build-small-libsndfile.sh
./build-small-libxml2.sh
sudo ldconfig
- name: build externals
working-directory: ssr/flext
run: |
make install DESTDIR=build PDLIBDIR=
- name: Fix pd_linux dependencies
working-directory: ssr/flext
run: |
sh pd-lib-builder-iem-ci/localdeps/localdeps.linux.sh build/ssr_*.pd_linux
- name: upload Linux externals
uses: actions/upload-artifact@v4
with:
name: linux-externals
path: ssr/flext/build/*
macos:
runs-on: macos-latest
steps:
- name: install macOS packages
run: |
PACKAGES=(
autogen
automake
fftw
SoundScapeRenderer/ssr/libmysofa
pkg-config
)
brew install ${PACKAGES[@]}
brew install --cask pd
- name: checkout ssr
uses: actions/checkout@v4
with:
submodules: true
path: ssr
- name: Build dependencies
working-directory: ssr/ci
run: |
sudo chown -R $(whoami):admin /usr/local
./build-small-libsndfile.sh
- name: build externals
working-directory: ssr/flext
run: |
make install DESTDIR=build PDLIBDIR= CPPFLAGS=-I/opt/homebrew/include LDFLAGS=-L/opt/homebrew/lib
- name: Fix pd_darwin dependencies
working-directory: ssr/flext
run: |
sh pd-lib-builder-iem-ci/localdeps/localdeps.macos.sh build/ssr_*.pd_darwin
- name: upload macOS externals
uses: actions/upload-artifact@v4
with:
name: macos-externals
path: ssr/flext/build/*
windows:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Install MSYS2
uses: msys2/setup-msys2@v2
with:
msystem: ucrt64
release: false
path-type: inherit
install: >-
unzip
autogen
autotools
pacboy: >-
gcc:p
fftw:p
libmysofa:p
ntldd-git:p
- name: Install Pd
run: |
wget -q -O Pd.zip http://msp.ucsd.edu/Software/pd-0.51-3.msw.zip
rm -rf "${PROGRAMFILES}/pd" && mkdir -p "${PROGRAMFILES}/pd"
unzip -q Pd.zip -d "${PROGRAMFILES}/pd"
mv -v "${PROGRAMFILES}/pd"/*/* "${PROGRAMFILES}/pd"
rm -f Pd.zip
export PD="${PROGRAMFILES}/pd/bin/pd.com"
- name: checkout ssr
uses: actions/checkout@v4
with:
submodules: true
path: ssr
- name: Build dependencies
working-directory: ssr/ci
run: |
# https://github.com/msys2/MINGW-packages/issues/5803
export LIBS=-lssp
./build-small-libsndfile.sh
./build-small-libxml2.sh
- name: build externals
working-directory: ssr/flext
run: |
make install DESTDIR=build PDLIBDIR= extension=m_amd64
- name: Fix dll dependencies
working-directory: ssr/flext
run: |
sh pd-lib-builder-iem-ci/localdeps/localdeps.win.sh build/ssr_*.m_amd64
- name: upload Windows externals
uses: actions/upload-artifact@v4
with:
name: windows-externals
path: ssr/flext/build/*
deken-package:
# Deken is not available on 22.04,
# see https://github.com/pure-data/deken/issues/260
runs-on: ubuntu-20.04
needs: [linux, macos, windows]
steps:
- name: Clone Git repository
uses: actions/checkout@v4
with:
# check out all tags to get proper version in Deken package
fetch-depth: 0
- name: Retrieve Linux externals
uses: actions/download-artifact@v4
with:
name: linux-externals
path: ssr
- name: Retrieve macOS external
uses: actions/download-artifact@v4
with:
name: macos-externals
path: ssr
- name: Retrieve Windows external
uses: actions/download-artifact@v4
with:
name: windows-externals
path: ssr
- name: Install deken
run: |
sudo apt-get install --no-install-recommends deken
# work-arounds from https://github.com/pure-data/deken/issues/247:
mkdir ~/.deken
python3 -m pip install hy==0.19
- name: Run deken
run: |
deken package -v $(git describe --tags --always) --objects flext/objects.txt ssr
- name: Upload deken package
uses: actions/upload-artifact@v4
with:
name: Deken package
path: "*.dek*"