CI workflow restyle
This commit is contained in:
parent
5f7cf3d624
commit
a3f3274204
1 changed files with 215 additions and 268 deletions
483
.github/workflows/build.yml
vendored
483
.github/workflows/build.yml
vendored
|
|
@ -1,5 +1,4 @@
|
|||
name: build
|
||||
|
||||
name: Build UIs
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
|
|
@ -7,10 +6,10 @@ on:
|
|||
- 'master'
|
||||
tags:
|
||||
- '[0-9]*'
|
||||
- 'v[0-9]*'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
# Manual builds in all branches
|
||||
workflow_dispatch:
|
||||
branches:
|
||||
- '*'
|
||||
|
|
@ -20,217 +19,142 @@ env:
|
|||
jobs:
|
||||
clang_tidy:
|
||||
# if: ${{ false }}
|
||||
name: Clang Tidy
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up dependencies
|
||||
run: |
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install \
|
||||
clang-tidy \
|
||||
libsndfile1-dev
|
||||
- name: Clang Tidy
|
||||
working-directory: ${{runner.workspace}}
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get update && sudo apt-get install clang-tidy
|
||||
- name: Run
|
||||
run: cd "$GITHUB_WORKSPACE" && scripts/run_clang_tidy.sh
|
||||
|
||||
build_for_linux:
|
||||
# if: ${{ false }}
|
||||
name: Linux Ubuntu 20.04
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
echo "install_name=sfizz-${GITHUB_REF##*/}-linux" >> "$GITHUB_ENV"
|
||||
- uses: actions/checkout@v3
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up dependencies
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install \
|
||||
ninja-build \
|
||||
libjack-jackd2-dev \
|
||||
libsndfile1-dev \
|
||||
libcairo2-dev \
|
||||
libpango1.0-dev \
|
||||
libfontconfig1-dev \
|
||||
libx11-xcb-dev \
|
||||
libxcb-util-dev \
|
||||
libxcb-cursor-dev \
|
||||
libxcb-xkb-dev \
|
||||
libxkbcommon-dev \
|
||||
libxkbcommon-x11-dev \
|
||||
packages=(
|
||||
libcairo2-dev
|
||||
libfontconfig1-dev
|
||||
libjack-jackd2-dev
|
||||
libpango1.0-dev
|
||||
libx11-xcb-dev
|
||||
libxcb-cursor-dev
|
||||
libxcb-keysyms1-dev
|
||||
- name: Create Build Environment
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: cmake -E make_directory build
|
||||
libxcb-util-dev
|
||||
libxcb-xkb-dev
|
||||
libxkbcommon-dev
|
||||
libxkbcommon-x11-dev
|
||||
ninja-build
|
||||
)
|
||||
sudo apt-get update && sudo apt-get install "${packages[@]}"
|
||||
- name: Configure CMake
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: |
|
||||
cmake "$GITHUB_WORKSPACE" -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
||||
-DSFIZZ_JACK=ON \
|
||||
-DSFIZZ_VST=ON \
|
||||
-DSFIZZ_LV2_UI=ON \
|
||||
-DSFIZZ_PUREDATA=ON \
|
||||
-DSFIZZ_TESTS=ON \
|
||||
-DSFIZZ_SHARED=OFF \
|
||||
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
|
||||
-DSFIZZ_LV2=ON \
|
||||
-DCMAKE_CXX_STANDARD=17
|
||||
- name: Build tests
|
||||
if: ${{ false }} # DISABLED: Do this in library repo
|
||||
options=(
|
||||
-G Ninja
|
||||
-B build
|
||||
-S "$GITHUB_WORKSPACE"
|
||||
-D CMAKE_BUILD_TYPE="$BUILD_TYPE"
|
||||
-D CMAKE_CXX_STANDARD=17
|
||||
-D SFIZZ_JACK=OFF
|
||||
-D SFIZZ_RENDER=OFF
|
||||
-D SFIZZ_SHARED=OFF
|
||||
-D SFIZZ_LV2=ON
|
||||
-D SFIZZ_LV2_UI=ON
|
||||
-D SFIZZ_PUREDATA=ON
|
||||
-D SFIZZ_VST=ON
|
||||
)
|
||||
cmake "${options[@]}"
|
||||
- name: Build
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "$BUILD_TYPE" -j 2 --target sfizz_tests
|
||||
- name: Run tests
|
||||
if: ${{ false }} # DISABLED: Do this in library repo
|
||||
shell: bash
|
||||
run: ${{runner.workspace}}/build/tests/sfizz_tests
|
||||
# Reenable with newer cmakes
|
||||
# working-directory: ${{runner.workspace}}/build
|
||||
# run: ctest -j 2 -C "$BUILD_TYPE" --output-on-failure
|
||||
- name: Build all
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "$BUILD_TYPE" -j 2
|
||||
- name: Install
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
shell: bash
|
||||
run: |
|
||||
DESTDIR="$(pwd)/$install_name" cmake --build . --config "$BUILD_TYPE" --target install
|
||||
tar czvf "$install_name".tar.gz "$install_name"
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Linux tarball
|
||||
path: ${{runner.workspace}}/build/${{env.install_name}}.tar.gz
|
||||
|
||||
build_with_libsndfile:
|
||||
if: ${{ false }} # DISABLED: Do this in library repo
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
echo "install_name=sfizz-${GITHUB_REF##*/}-linux" >> "$GITHUB_ENV"
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up dependencies
|
||||
run: |
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install \
|
||||
ninja-build \
|
||||
libsndfile1-dev
|
||||
- name: Create Build Environment
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: cmake -E make_directory build
|
||||
- name: Configure CMake
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: |
|
||||
cmake "$GITHUB_WORKSPACE" -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
||||
-DSFIZZ_JACK=OFF \
|
||||
-DSFIZZ_VST=OFF \
|
||||
-DSFIZZ_LV2_UI=OFF \
|
||||
-DSFIZZ_PUREDATA=OFF \
|
||||
-DSFIZZ_USE_SNDFILE=ON \
|
||||
-DSFIZZ_TESTS=ON \
|
||||
-DSFIZZ_SHARED=OFF \
|
||||
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
|
||||
-DSFIZZ_LV2=OFF
|
||||
- name: Build tests
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "$BUILD_TYPE" -j 2 --target sfizz_tests
|
||||
- name: Run tests
|
||||
shell: bash
|
||||
run: ${{runner.workspace}}/build/tests/sfizz_tests
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: cmake --build build --verbose -j 2
|
||||
# No custom Linux packages, build from sources or provided in distro
|
||||
|
||||
build_for_macos:
|
||||
# if: ${{ false }}
|
||||
name: macOS 11
|
||||
runs-on: macos-11
|
||||
env:
|
||||
install_name: "sfizz-${{ github.ref_name }}-macos.pkg"
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
echo "install_name=sfizz-${GITHUB_REF##*/}-macos" >> "$GITHUB_ENV"
|
||||
- uses: actions/checkout@v3
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Create Build Environment
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: cmake -E make_directory build
|
||||
- name: Install dependencies
|
||||
if: ${{ github.ref_type == 'branch' }}
|
||||
run: brew install abseil
|
||||
- name: Configure CMake
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: |
|
||||
cmake "$GITHUB_WORKSPACE" \
|
||||
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
||||
-DSFIZZ_AU=ON \
|
||||
-DSFIZZ_LV2=ON \
|
||||
-DSFIZZ_LV2_UI=ON \
|
||||
-DSFIZZ_VST=ON \
|
||||
-DSFIZZ_JACK=OFF \
|
||||
-DSFIZZ_TESTS=ON \
|
||||
-DSFIZZ_SHARED=OFF \
|
||||
-DSFIZZ_STATIC_DEPENDENCIES=OFF \
|
||||
-DCMAKE_CXX_STANDARD=17
|
||||
- name: Build tests
|
||||
if: ${{ false }} # DISABLED: Do this in library repo
|
||||
options=(
|
||||
-B build
|
||||
-S "$GITHUB_WORKSPACE"
|
||||
-D CMAKE_BUILD_TYPE="$BUILD_TYPE"
|
||||
-D CMAKE_CXX_STANDARD=17
|
||||
-D SFIZZ_SHARED=OFF
|
||||
-D SFIZZ_AU=ON
|
||||
-D SFIZZ_LV2=ON
|
||||
-D SFIZZ_LV2_UI=ON
|
||||
-D SFIZZ_VST=ON
|
||||
)
|
||||
if [[ ${{ github.ref_type }} == 'branch' ]]; then
|
||||
options=(
|
||||
${options[@]}
|
||||
-D SFIZZ_USE_SYSTEM_ABSEIL=ON
|
||||
)
|
||||
fi
|
||||
cmake "${options[@]}"
|
||||
- name: Build
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: |
|
||||
cmake --build . --config "$BUILD_TYPE" -j 2 --target sfizz_tests
|
||||
- name: Run tests
|
||||
if: ${{ false }} # DISABLED: Do this in library repo
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: cmake --build build --verbose -j 2
|
||||
- name: Package bundles
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
shell: bash
|
||||
run: ${{runner.workspace}}/build/tests/sfizz_tests
|
||||
# Reenable with newer cmakes
|
||||
# working-directory: ${{runner.workspace}}/build
|
||||
# run: ctest -j 2 -C "$BUILD_TYPE" --output-on-failure
|
||||
- name: Build plugins
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "$BUILD_TYPE" -j 2
|
||||
- name: Package OSX bundles
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: $GITHUB_WORKSPACE/scripts/package-osx-bundles.sh
|
||||
- name: Create OSX installer
|
||||
- name: Create installer
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
run: |
|
||||
productbuild \
|
||||
--distribution $GITHUB_WORKSPACE/scripts/plugin.pkg/package.xml \
|
||||
--identifier "sfz.tools.sfizz" \
|
||||
--package-path "${{runner.workspace}}/build" \
|
||||
--package-path "${{ runner.workspace }}/build" \
|
||||
--version 0 \
|
||||
${{env.install_name}}.pkg
|
||||
- uses: actions/upload-artifact@v3
|
||||
${{ env.install_name }}
|
||||
- name: Upload
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: macOS installer
|
||||
path: |
|
||||
${{runner.workspace}}/build/${{env.install_name}}.pkg
|
||||
name: macOS package
|
||||
path: ${{ runner.workspace }}/build/${{ env.install_name }}
|
||||
|
||||
build_for_mod:
|
||||
if: ${{ false }} # DISABLED: Old image which doesn't work with CMake > 3.5
|
||||
name: MOD
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: jpcima/mod-plugin-builder
|
||||
options: --user 0
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
echo "install_name=sfizz-${GITHUB_REF##*/}-moddevices" >> "$GITHUB_ENV"
|
||||
run: echo "install_name=sfizz-$GITHUB_REF_NAME-moddevices" >> "$GITHUB_ENV"
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
|
@ -239,11 +163,11 @@ jobs:
|
|||
run: ln -sf /home/builder/mod-workdir ~/mod-workdir
|
||||
- name: Create Build Environment
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: mod-plugin-builder /usr/local/bin/cmake -E make_directory build
|
||||
- name: Configure CMake
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
run: |
|
||||
mod-plugin-builder /usr/local/bin/cmake "$GITHUB_WORKSPACE" \
|
||||
-DPROJECT_SYSTEM_PROCESSOR=armv7-a \
|
||||
|
|
@ -253,21 +177,23 @@ jobs:
|
|||
-DSFIZZ_LV2_UI=OFF
|
||||
- name: Build
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
run: mod-plugin-builder /usr/local/bin/cmake --build . --config "$BUILD_TYPE" -- -j 2
|
||||
- name: Install
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
shell: bash
|
||||
run: |
|
||||
DESTDIR="$(pwd)/$install_name" mod-plugin-builder /usr/local/bin/cmake --build . --config "$BUILD_TYPE" --target install
|
||||
tar czvf "$install_name".tar.gz "$install_name"
|
||||
- uses: actions/upload-artifact@v3
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: MOD devices tarball
|
||||
path: ${{runner.workspace}}/build/${{env.install_name}}.tar.gz
|
||||
path: ${{ runner.workspace }}/build/${{ env.install_name }}.tar.gz
|
||||
|
||||
build_for_windows:
|
||||
# if: ${{ false }}
|
||||
name: Windows 2019
|
||||
runs-on: windows-2019
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
@ -280,52 +206,59 @@ jobs:
|
|||
pkg_platform: Win64
|
||||
release_arch: x64
|
||||
bits: 64
|
||||
env:
|
||||
install_name: sfizz-${{ github.ref_name }}-win${{ matrix.bits }}
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=$(${Env:GITHUB_REF}.split('/')[-1])" >> "${Env:GITHUB_ENV}"
|
||||
echo "install_name=sfizz-$(${Env:GITHUB_REF}.split('/')[-1])-win${{matrix.bits}}" >> "${Env:GITHUB_ENV}"
|
||||
- uses: actions/checkout@v3
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Create Build Environment
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: cmake -E make_directory build
|
||||
- name: Configure CMake
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: |
|
||||
cmake "${Env:GITHUB_WORKSPACE}" -G"Visual Studio 16 2019" -A"${{matrix.release_arch}}" -DCMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" -DCMAKE_CXX_STANDARD=17 -DSFIZZ_TESTS=ON -DSFIZZ_VST=ON -DSFIZZ_LV2=ON -DSFIZZ_PUREDATA=ON
|
||||
- name: Build tests
|
||||
if: ${{ false }} # DISABLED: Do this in library repo
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2 --target sfizz_tests
|
||||
- name: Test
|
||||
if: ${{ false }} # DISABLED: Do this in library repo
|
||||
run: ${{runner.workspace}}/build/tests/Release/sfizz_tests
|
||||
- name: Build all
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: cmake --build . --config "${Env:BUILD_TYPE}" -j 2
|
||||
cmake `
|
||||
-G "Visual Studio 16 2019" `
|
||||
-A "${{ matrix.release_arch }}" `
|
||||
-B build `
|
||||
-S "${Env:GITHUB_WORKSPACE}" `
|
||||
-D CMAKE_BUILD_TYPE="${Env:BUILD_TYPE}" `
|
||||
-D CMAKE_CXX_STANDARD=17 `
|
||||
-D SFIZZ_LV2=ON `
|
||||
-D SFIZZ_PUREDATA=ON `
|
||||
-D SFIZZ_VST=ON `
|
||||
- name: Build
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: cmake --build build -j 2
|
||||
- name: Install pluginval
|
||||
if: ${{ matrix.platform == 'x64' }}
|
||||
run: |
|
||||
Invoke-WebRequest https://github.com/Tracktion/pluginval/releases/download/latest_release/pluginval_Windows.zip -OutFile pluginval.zip
|
||||
Invoke-WebRequest `
|
||||
https://github.com/Tracktion/pluginval/releases/download/latest_release/pluginval_Windows.zip `
|
||||
-OutFile pluginval.zip
|
||||
Expand-Archive pluginval.zip -DestinationPath pluginval
|
||||
echo "$(Get-Location)\pluginval" | Out-File -FilePath ${Env:GITHUB_PATH} -Encoding utf8 -Append
|
||||
echo "$(Get-Location)\pluginval" | Out-File `
|
||||
-FilePath ${Env:GITHUB_PATH} `
|
||||
-Encoding utf8 `
|
||||
-Append
|
||||
pluginval\pluginval --version
|
||||
- name: Validate VST3
|
||||
if: ${{ matrix.platform == 'x64' }}
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
run: pluginval --validate-in-process --validate sfizz.vst3
|
||||
- name: Create installer
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: iscc /O"." /F"${Env:install_name}" /dARCH="${{matrix.platform}}" innosetup.iss
|
||||
- uses: actions/upload-artifact@v3
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
working-directory: ${{ runner.workspace }}/build
|
||||
run: iscc /O"." /F"${Env:install_name}" /dARCH="${{ matrix.platform }}" innosetup.iss
|
||||
- name: Upload
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{matrix.pkg_platform}} installer
|
||||
path: ${{runner.workspace}}/build/${{env.install_name}}.exe
|
||||
name: ${{ matrix.pkg_platform }} installer
|
||||
path: ${{ runner.workspace }}/build/${{ env.install_name }}.exe
|
||||
|
||||
build_for_mingw:
|
||||
if: ${{ false }} # DISABLED TEMPORARILY
|
||||
name: MinGW
|
||||
runs-on: ubuntu-20.04
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
@ -338,11 +271,9 @@ jobs:
|
|||
bits: 64
|
||||
container:
|
||||
image: archlinux
|
||||
env:
|
||||
install_name: sfizz-${{ github.ref_name }}-mingw${{ matrix.bits }}
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
echo "install_name=sfizz-${GITHUB_REF##*/}-mingw${{matrix.bits}}" >> "$GITHUB_ENV"
|
||||
- name: Configure pacman repositories
|
||||
shell: bash
|
||||
run: |
|
||||
|
|
@ -353,11 +284,15 @@ jobs:
|
|||
SigLevel = Optional TrustAll
|
||||
Server = https://github.com/jpcima/arch-mingw-w64/releases/download/repo.\$arch/
|
||||
EOF
|
||||
- name: Set up dependencies
|
||||
- name: Install dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
packages=(
|
||||
base-devel git ninja wget
|
||||
mingw-w64-{cmake,gcc,pkg-config,libsndfile}
|
||||
)
|
||||
pacman -Sqyu --noconfirm
|
||||
pacman -Sq --needed --noconfirm base-devel git wget ninja mingw-w64-cmake mingw-w64-gcc mingw-w64-pkg-config mingw-w64-libsndfile
|
||||
pacman -Sq --needed --noconfirm "${packages[@]}"
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
|
@ -365,120 +300,132 @@ jobs:
|
|||
shell: bash
|
||||
run: |
|
||||
cp -vf "$GITHUB_WORKSPACE"/scripts/mingw_dwrite_3.h \
|
||||
/usr/${{matrix.platform}}-w64-mingw32/include/dwrite_3.h
|
||||
- name: Create Build Environment
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}
|
||||
run: cmake -E make_directory build
|
||||
/usr/${{ matrix.platform }}-w64-mingw32/include/dwrite_3.h
|
||||
- name: Configure CMake
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: |
|
||||
${{matrix.platform}}-w64-mingw32-cmake "$GITHUB_WORKSPACE" -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE="$BUILD_TYPE" \
|
||||
-DENABLE_LTO=OFF \
|
||||
-DSFIZZ_JACK=OFF \
|
||||
-DSFIZZ_VST=ON \
|
||||
-DSFIZZ_PUREDATA=ON \
|
||||
-DSFIZZ_STATIC_DEPENDENCIES=ON \
|
||||
-DCMAKE_CXX_STANDARD=17
|
||||
options=(
|
||||
-G Ninja
|
||||
-B build
|
||||
-S "$GITHUB_WORKSPACE"
|
||||
-D CMAKE_BUILD_TYPE="$BUILD_TYPE"
|
||||
-D CMAKE_CXX_STANDARD=17
|
||||
-D ENABLE_LTO=OFF
|
||||
-D SFIZZ_STATIC_DEPENDENCIES=ON
|
||||
-D SFIZZ_JACK=OFF
|
||||
-D SFIZZ_PUREDATA=ON
|
||||
-D SFIZZ_VST=ON
|
||||
)
|
||||
${{ matrix.platform }}-w64-mingw32-cmake "${options[@]}"
|
||||
- name: Build
|
||||
shell: bash
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
run: ${{matrix.platform}}-w64-mingw32-cmake --build . --config "$BUILD_TYPE" -j 2
|
||||
working-directory: ${{ runner.workspace }}
|
||||
run: ${{ matrix.platform }}-w64-mingw32-cmake --build build -j 2
|
||||
- name: Install
|
||||
working-directory: ${{runner.workspace}}/build
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
working-directory: ${{ runner.workspace }}
|
||||
shell: bash
|
||||
run: |
|
||||
DESTDIR="$(pwd)/$install_name" ${{matrix.platform}}-w64-mingw32-cmake --build . --config "$BUILD_TYPE" --target install
|
||||
tar czvf "$install_name".tar.gz "$install_name"
|
||||
- uses: actions/upload-artifact@v3
|
||||
DESTDIR="$(pwd)/${{ env.install_name }}" ${{ matrix.platform }}-w64-mingw32-cmake \
|
||||
--build build --install
|
||||
tar czvf ${{ env.install_name }}.tar.gz "${{ env.install_name }}"
|
||||
- name: Upload
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{matrix.pkg_platform}} MinGW tarball
|
||||
path: ${{runner.workspace}}/build/${{env.install_name}}.tar.gz
|
||||
|
||||
# build_with_makefile: MOVED in library repo
|
||||
name: ${{ matrix.pkg_platform }} MinGW tarball
|
||||
path: ${{ runner.workspace }}/build/${{ env.install_name }}.tar.gz
|
||||
|
||||
archive_source_code:
|
||||
# if: startsWith(github.ref, 'refs/tags/')
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
name: Source code archive
|
||||
runs-on: ubuntu-20.04
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
env:
|
||||
install_name: sfizz-${{ github.ref_name }}
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
echo "install_name=sfizz-${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
- uses: actions/checkout@v3
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Set up dependencies
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install \
|
||||
python3-pip
|
||||
sudo apt-get update && sudo apt-get install python3-pip
|
||||
sudo pip install git-archive-all
|
||||
- name: Archive source code
|
||||
shell: bash
|
||||
run: |
|
||||
cd "$GITHUB_WORKSPACE" && \
|
||||
git-archive-all --prefix="${install_name}/" -9 "${{runner.workspace}}/${install_name}.tar.gz"
|
||||
- uses: actions/upload-artifact@v3
|
||||
cd "$GITHUB_WORKSPACE" && git-archive-all \
|
||||
--prefix="${{ env.install_name }}/" \
|
||||
-9 "${{ runner.workspace }}/${{ env.install_name }}.tar.gz"
|
||||
- name: Upload
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Source code tarball
|
||||
path: ${{runner.workspace}}/${{env.install_name}}.tar.gz
|
||||
path: ${{ runner.workspace }}/${{ env.install_name }}.tar.gz
|
||||
|
||||
deploy:
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
runs-on: ubuntu-20.04
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
needs:
|
||||
# - build_for_linux
|
||||
# - build_for_mod
|
||||
# - build_for_mingw
|
||||
- build_for_macos
|
||||
- build_for_windows
|
||||
- archive_source_code
|
||||
steps:
|
||||
- name: Set install name
|
||||
run: |
|
||||
echo "install_ref=${GITHUB_REF##*/}" >> "$GITHUB_ENV"
|
||||
- uses: actions/download-artifact@v3
|
||||
if: ${{ false }} # DISABLED: Use distro packages
|
||||
- name: macOS download
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: Linux tarball
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: macOS installer
|
||||
- uses: actions/download-artifact@v3
|
||||
name: macOS package
|
||||
|
||||
- name: MOD download
|
||||
if: ${{ false }} # DISABLED: See comment above
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: MOD devices tarball
|
||||
- uses: actions/download-artifact@v3
|
||||
|
||||
- name: MinGW 32 download
|
||||
if: ${{ false }} # DISABLED: MinGW 32 build temporarily disabled
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: Win32 MinGW tarball
|
||||
- uses: actions/download-artifact@v3
|
||||
|
||||
- name: MinGW 64 download
|
||||
if: ${{ false }} # DISABLED: MinGW 64 build temporarily disabled
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: Win64 MinGW tarball
|
||||
- uses: actions/download-artifact@v3
|
||||
|
||||
- name: Windows 32 download
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: Win32 installer
|
||||
- uses: actions/download-artifact@v3
|
||||
|
||||
- name: Windows 64 download
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: Win64 installer
|
||||
- uses: actions/download-artifact@v3
|
||||
|
||||
- name: Source code download
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: Source code tarball
|
||||
|
||||
- name: Display file information
|
||||
shell: bash
|
||||
run: ls -lR
|
||||
- uses: softprops/action-gh-release@v1
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{env.install_ref}}
|
||||
name: Release ${{env.install_ref}}
|
||||
tag_name: ${{ github.ref_name }}
|
||||
name: Release ${{ github.ref_name }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
files: |
|
||||
sfizz-${{env.install_ref}}-*
|
||||
sfizz-${{env.install_ref}}.*
|
||||
sfizz-${{ github.ref_name }}-*
|
||||
sfizz-${{ github.ref_name }}.*
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue