CI cleanup #19
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: | |
env: | |
CACHE_VERSION: 1 | |
DEBIAN_FRONTEND: noninteractive | |
DESTDIR: /tmp/destdir | |
LIBGL_ALWAYS_SOFTWARE: 'true' | |
jobs: | |
linux: | |
strategy: | |
matrix: | |
include: | |
- name: arm64 | |
cflags: | |
ldflags: | |
prefix: aarch64-linux-gnu | |
- name: armhf | |
cflags: -mfpu=neon-vfpv4 -mfloat-abi=hard | |
ldflags: | |
prefix: arm-linux-gnueabihf | |
- name: i386 | |
cflags: | |
ldflags: | |
prefix: i686-linux-gnu | |
- name: x86_64 | |
cflags: | |
ldflags: | |
prefix: x86_64-linux-gnu | |
runs-on: ubuntu-latest | |
container: | |
image: ubuntu:20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up dependencies | |
run: | | |
dpkg --add-architecture ${{ matrix.name }} | |
apt-get update -qq | |
apt-get install -yqq \ | |
build-essential \ | |
meson \ | |
g++-${{ matrix.prefix }} \ | |
libasound2-dev:${{ matrix.name }} \ | |
libfftw3-dev:${{ matrix.name }} \ | |
libfreetype6-dev:${{ matrix.name }} \ | |
libgl1-mesa-dev:${{ matrix.name }} \ | |
libx11-dev:${{ matrix.name }} \ | |
libxcomposite-dev:${{ matrix.name }} \ | |
libxcursor-dev:${{ matrix.name }} \ | |
libxrender-dev:${{ matrix.name }} | |
- name: Build | |
env: | |
AR: ${{ matrix.prefix }}-ar | |
CC: ${{ matrix.prefix }}-gcc | |
CXX: ${{ matrix.prefix }}-g++ | |
LD: ${{ matrix.prefix }}-ld | |
NM: ${{ matrix.prefix }}-nm | |
STRIP: ${{ matrix.prefix }}-strip | |
CFLAGS: ${{ matrix.cflags }} | |
CXXFLAGS: ${{ matrix.cflags }} | |
LDFLAGS: ${{ matrix.ldflags }} -static-libgcc -static-libstdc++ | |
PKG_CONFIG_PATH: /usr/lib/${{ matrix.prefix }}/pkgconfig | |
run: | | |
meson build --buildtype=release --prefix=/usr | |
ninja -C build | |
- name: Install | |
run: | | |
ninja -C build install | |
- name: Set sha8 (release) | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
echo "SHA8=$(echo ${{ github.ref_name }})" >> $GITHUB_ENV | |
- name: Set sha8 (non-release) | |
if: startsWith(github.ref, 'refs/tags/') != true | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- name: Pack binaries | |
run: | | |
tar czf ${{ github.event.repository.name }}-linux-${{ matrix.name }}-${{ github.event.pull_request.number || env.SHA8 }}.tar.gz -C ${{ env.DESTDIR }}/usr/lib lv2 vst vst3 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-linux-${{ matrix.name }}-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
*.tar.gz | |
- 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: | | |
*.tar.gz | |
windows: | |
strategy: | |
matrix: | |
include: | |
- name: win32 | |
prefix: i686 | |
- name: win64 | |
prefix: x86_64 | |
runs-on: ubuntu-latest | |
container: | |
image: ubuntu:22.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up dependencies | |
run: | | |
dpkg --add-architecture i386 | |
apt-get update -qq | |
apt-get install -yqq \ | |
build-essential \ | |
meson \ | |
wine-stable \ | |
xvfb \ | |
binutils-mingw-w64-${{ matrix.prefix }} \ | |
g++-mingw-w64-${{ matrix.prefix }} | |
- name: Build | |
env: | |
PKG_CONFIG_PATH: /UNUSED | |
WINEDEBUG: -all | |
run: | | |
meson build --buildtype=release --prefix=/usr --cross-file scripts/meson/${{ matrix.name }}.ini | |
ninja -C build | |
- name: Install | |
run: | | |
ninja -C build install | |
- name: Set sha8 (release) | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
echo "SHA8=$(echo ${{ github.ref_name }})" >> $GITHUB_ENV | |
- name: Set sha8 (non-release) | |
if: startsWith(github.ref, 'refs/tags/') != true | |
run: | | |
echo "SHA8=$(echo ${{ github.sha }} | cut -c1-8)" >> $GITHUB_ENV | |
- name: Pack binaries | |
run: | | |
tar czf ${{ github.event.repository.name }}-${{ matrix.name }}-${{ github.event.pull_request.number || env.SHA8 }}.tar.gz -C ${{ env.DESTDIR }}/usr/lib lv2 vst vst3 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-${{ matrix.name }}-${{ github.event.pull_request.number || env.SHA8 }} | |
path: | | |
*.tar.gz | |
- 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: | | |
*.tar.gz | |
linux-x86_64-debug: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up dependencies | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq build-essential meson | |
sudo apt-get install -yqq libasound2-dev libfftw3-dev libfreetype6-dev libgl1-mesa-dev libx11-dev libxcomposite-dev libxcursor-dev libxrender-dev | |
- name: Build linux x86_64 (debug) | |
env: | |
LDFLAGS: -static-libgcc -static-libstdc++ | |
run: | | |
meson build --buildtype=debug --prefix=/usr | |
ninja -C build | |
- name: Install linux x86_64 (debug) | |
run: | | |
ninja -C build install | |
- name: Set sha8 | |
id: slug | |
run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" | |
- name: Pack binaries | |
run: | | |
tar czf ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C ${{ env.DESTDIR }}/usr/lib lv2 vst vst3 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ github.event.repository.name }}-linux-x86_64-debug-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} | |
path: | | |
*.tar.gz | |
linux-x86_64-embed: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Set up dependencies | |
run: | | |
sudo apt-get update -qq | |
sudo apt-get install -yqq build-essential meson | |
sudo apt-get install -yqq libasound2-dev libfftw3-dev | |
- name: Build linux x86_64 (embed) | |
run: | | |
meson build --buildtype=release --prefix=/usr -Dlinux-embed=true | |
ninja -C build | |
#macos-intel: | |
#runs-on: macos-11 | |
#steps: | |
#- uses: actions/checkout@v3 | |
#with: | |
#submodules: recursive | |
##- name: Set up cache | |
##id: cache | |
##uses: actions/cache@v3 | |
##with: | |
##path: | | |
##build | |
##key: macos-intel-v${{ env.CACHE_VERSION }} | |
#- name: Set up dependencies | |
#run: | | |
#brew install meson | |
#- name: Build macOS intel | |
#env: | |
#CFLAGS: -arch x86_64 -mmacosx-version-min=10.8 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_8 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_8 | |
#CXXFLAGS: -arch x86_64 -mmacosx-version-min=10.8 -stdlib=libc++ -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_8 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_8 | |
#LDFLAGS: -arch x86_64 -mmacosx-version-min=10.8 -stdlib=libc++ | |
#run: | | |
#meson build --buildtype=release --prefix=/usr | |
#ninja -C build | |
#- name: Install macOS intel | |
#run: | | |
#ninja -C build install | |
#- name: Set sha8 (non-release) | |
#if: startsWith(github.ref, 'refs/tags/') != true | |
#id: slug1 | |
#run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" | |
#- name: Set sha8 (release) | |
#if: startsWith(github.ref, 'refs/tags/') | |
#id: slug2 | |
#run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})" | |
#- name: Set sha8 | |
#id: slug | |
#run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})" | |
#- name: Pack binaries | |
#run: | | |
#tar czf ${{ github.event.repository.name }}-macOS-intel-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C ${{ env.DESTDIR }}/usr/lib lv2 vst vst3 | |
#- uses: actions/upload-artifact@v3 | |
#with: | |
#name: ${{ github.event.repository.name }}-macOS-intel-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} | |
#path: | | |
#*.tar.gz | |
#macos-universal: | |
#runs-on: macos-11 | |
#steps: | |
#- uses: actions/checkout@v3 | |
#with: | |
#submodules: recursive | |
##- name: Set up cache | |
##id: cache | |
##uses: actions/cache@v3 | |
##with: | |
##path: | | |
##build | |
##key: macos-universal-v${{ env.CACHE_VERSION }} | |
#- name: Set up dependencies | |
#run: | | |
#brew install meson | |
#- name: Build macOS universal | |
#env: | |
#CFLAGS: -mmacosx-version-min=10.12 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12 | |
#CXXFLAGS: -mmacosx-version-min=10.12 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12 | |
#LDFLAGS: -mmacosx-version-min=10.12 | |
#run: | | |
#meson build --buildtype=release --prefix=/usr -Dbuild-universal=true | |
#ninja -C build | |
#- name: Install macOS universal | |
#run: | | |
#ninja -C build install | |
#- name: Set sha8 (non-release) | |
#if: startsWith(github.ref, 'refs/tags/') != true | |
#id: slug1 | |
#run: echo "::set-output name=sha8::$(echo ${{ github.sha }} | cut -c1-8)" | |
#- name: Set sha8 (release) | |
#if: startsWith(github.ref, 'refs/tags/') | |
#id: slug2 | |
#run: echo "::set-output name=sha8::$(echo ${{ github.ref_name }})" | |
#- name: Set sha8 | |
#id: slug | |
#run: echo "::set-output name=sha8::$(echo ${{ steps.slug1.outputs.sha8 || steps.slug2.outputs.sha8 }})" | |
#- name: Pack binaries | |
#run: | | |
#tar czf ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }}.tar.gz -C ${{ env.DESTDIR }}/usr/lib lv2 vst vst3 | |
#- uses: actions/upload-artifact@v3 | |
#with: | |
#name: ${{ github.event.repository.name }}-macOS-universal-${{ github.event.pull_request.number || steps.slug.outputs.sha8 }} | |
#path: | | |
#*.tar.gz |