Skip to content

CI cleanup

CI cleanup #25

Workflow file for this run

name: build
on:
push:
env:
CACHE_VERSION: 1
DEBIAN_FRONTEND: noninteractive
DESTDIR: /tmp/destdir
LIBGL_ALWAYS_SOFTWARE: 'true'
jobs:
linux:
strategy:
matrix:
include:
- name: amd64
cflags:
ldflags:
prefix: x86_64-linux-gnu
- 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
runs-on: ubuntu-latest
container:
image: ubuntu:20.04
steps:
- name: Set up dependencies
run: |
dpkg --add-architecture ${{ matrix.name }}
if [ "${{ matrix.name }}" != "amd64" ] && [ "${{ matrix.name }}" != "i386" ]; then
sed -i "s/deb http/deb [arch=amd64] http/" /etc/apt/sources.list
echo "deb [arch=${{ matrix.name }}] http://ports.ubuntu.com/ubuntu-ports focal main restricted universe multiverse" | tee -a /etc/apt/sources.list
echo "deb [arch=${{ matrix.name }}] http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted universe multiverse" | tee -a /etc/apt/sources.list
echo "deb [arch=${{ matrix.name }}] http://ports.ubuntu.com/ubuntu-ports focal-backports main restricted universe multiverse" | tee -a /etc/apt/sources.list
fi
apt-get update -qq
apt-get install -yqq \
binfmt-support \
build-essential \
git \
meson \
qemu-user-static \
$(echo g++-${{ matrix.prefix }} | sed 's/_/-/g') \
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 }}
- uses: actions/checkout@v3
with:
submodules: recursive
- 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:
- name: Set up dependencies
run: |
dpkg --add-architecture i386
apt-get update -qq
apt-get install -yqq \
binfmt-support \
build-essential \
git \
meson \
wine-stable \
xvfb \
binutils-mingw-w64-${{ matrix.prefix }} \
g++-mingw-w64-${{ matrix.prefix }}
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Build
env:
WINEARCH: ${{ matrix.name }}
WINEDEBUG: -all
WINEDLLOVERRIDES: mscoree,mshtml=
WINEPREFIX: /tmp/wine
run: |
wineboot -u
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