Skip to content

Done full revision of all the banks and turned the rest into WOPLX #116

Done full revision of all the banks and turned the rest into WOPLX

Done full revision of all the banks and turned the rest into WOPLX #116

Workflow file for this run

name: Windows CI
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: "${{ matrix.config.name }} | ${{ matrix.config.build_type }}"
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- {
name: "MinGW-w64 64b Debug",
os: windows-latest,
PLATFORM: x64,
WINXX_ARCH: win64,
extra_path: "/c/MinGW-w64/mingw64/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x64.cmake -DWITH_OLD_UTILS=ON -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=ON -DWITH_MIDIPLAY=ON",
build_type: "Debug",
pack_dlls: "libgcc_s_seh-1.dll libstdc++-6.dll libwinpthread-1.dll",
pack_dlls_from: "C:/MinGW-w64/mingw64/bin",
package_type: "library",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/x86_64-13.1.0-release-posix-seh-msvcrt-rt_v11-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw64/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw64/",
vlc_sdk_download: "",
archive_name: "libADLMIDI-MinGW-w64-Debug-x64"
}
- {
name: "MinGW-w64 64b Rel",
os: windows-latest,
PLATFORM: x64,
WINXX_ARCH: win64,
extra_path: "/c/MinGW-w64/mingw64/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x64.cmake -DWITH_OLD_UTILS=ON -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=ON -DWITH_MIDIPLAY=ON",
build_type: "Release",
pack_dlls: "libgcc_s_seh-1.dll libstdc++-6.dll libwinpthread-1.dll",
pack_dlls_from: "C:/MinGW-w64/mingw64/bin",
package_type: "library",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/x86_64-13.1.0-release-posix-seh-msvcrt-rt_v11-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw64/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw64/",
vlc_sdk_download: "",
archive_name: "libADLMIDI-MinGW-w64-Release-x64"
}
- {
name: "MinGW-w64 32b Debug",
os: windows-latest,
PLATFORM: Win32,
WINXX_ARCH: win32,
extra_path: "/c/Qt/5.6.3-i686/bin:/c/MinGW-w64/mingw32/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x32.cmake -DWITH_OLD_UTILS=ON -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=ON -DWITH_MIDIPLAY=ON",
build_type: "Debug",
pack_dlls: "libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll",
pack_dlls_from: "C:/MinGW-w64/mingw32/bin",
package_type: "library",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/i686-12.2.0-release-posix-dwarf-rt_v10-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw32/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw32/",
archive_name: "libADLMIDI-MinGW-w32-Debug-Win32"
}
- {
name: "MinGW-w64 32b Rel",
os: windows-latest,
PLATFORM: Win32,
WINXX_ARCH: win32,
extra_path: "/c/Qt/5.6.3-i686/bin:/c/MinGW-w64/mingw32/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x32.cmake -DWITH_OLD_UTILS=ON -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=ON -DWITH_MIDIPLAY=ON",
build_type: "Release",
pack_dlls: "libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll",
pack_dlls_from: "C:/MinGW-w64/mingw32/bin",
package_type: "library",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/i686-12.2.0-release-posix-dwarf-rt_v10-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw32/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw32/",
archive_name: "libADLMIDI-MinGW-w32-Release-Win32"
}
- {
name: "MinGW-w64 with LLE 64b Rel",
os: windows-latest,
PLATFORM: x64,
WINXX_ARCH: win64,
extra_path: "/c/MinGW-w64/mingw64/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x64.cmake -DWITH_OLD_UTILS=ON -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=ON -DWITH_MIDIPLAY=ON -DUSE_NUKED_OPL2_LLE_EMULATOR=ON -DUSE_NUKED_OPL3_LLE_EMULATOR=ON",
build_type: "Release",
pack_dlls: "libgcc_s_seh-1.dll libstdc++-6.dll libwinpthread-1.dll",
pack_dlls_from: "C:/MinGW-w64/mingw64/bin",
package_type: "library",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/x86_64-13.1.0-release-posix-seh-msvcrt-rt_v11-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw64/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw64/",
vlc_sdk_download: "",
archive_name: "libADLMIDI-LLE-MinGW-w64-Release-x64"
}
- {
name: "MinGW-w64 with LLE 32b Rel",
os: windows-latest,
PLATFORM: Win32,
WINXX_ARCH: win32,
extra_path: "/c/Qt/5.6.3-i686/bin:/c/MinGW-w64/mingw32/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x32.cmake -DWITH_OLD_UTILS=ON -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=ON -DWITH_MIDIPLAY=ON -DUSE_NUKED_OPL2_LLE_EMULATOR=ON -DUSE_NUKED_OPL3_LLE_EMULATOR=ON",
build_type: "Release",
pack_dlls: "libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll",
pack_dlls_from: "C:/MinGW-w64/mingw32/bin",
package_type: "library",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/i686-12.2.0-release-posix-dwarf-rt_v10-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw32/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw32/",
archive_name: "libADLMIDI-LLE-MinGW-w32-Release-Win32"
}
- {
name: "VLC Plugin 64b Rel",
os: windows-latest,
PLATFORM: x64,
WINXX_ARCH: win64,
extra_path: "/c/MinGW-w64/mingw64/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x64.cmake -DWITH_OLD_UTILS=OFF -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=OFF -DWITH_MIDIPLAY=OFF -DWITH_VLC_PLUGIN=ON -DVLC_PLUGIN_NOINSTALL=ON",
build_type: "Release",
package_type: "vlcplugin",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/x86_64-13.1.0-release-posix-seh-msvcrt-rt_v11-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw64/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw64/",
vlc_sdk_download: "https://mirror.yandex.ru/mirrors/ftp.videolan.org/vlc/3.0.21/win64/vlc-3.0.21-win64.7z", vlc_sdk_install_dir: "C:/MinGW-w64/mingw64", vlc_dir: "vlc-3.0.21",
archive_name: "libADLMIDI-vlc-3.0.21-codec-x64"
}
- {
name: "VLC Plugin 32b Rel",
os: windows-latest,
PLATFORM: Win32,
WINXX_ARCH: win32,
extra_path: "/c/Qt/5.6.3-i686/bin:/c/MinGW-w64/mingw32/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x32.cmake -DWITH_OLD_UTILS=OFF -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=OFF -DWITH_MIDIPLAY=OFF -DWITH_VLC_PLUGIN=ON -DVLC_PLUGIN_NOINSTALL=ON",
build_type: "Release",
package_type: "vlcplugin",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/i686-12.2.0-release-posix-dwarf-rt_v10-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw32/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw32/",
vlc_sdk_download: "https://mirror.yandex.ru/mirrors/ftp.videolan.org/vlc/3.0.21/win32/vlc-3.0.21-win32.7z", vlc_sdk_install_dir: "C:/MinGW-w64/mingw32", vlc_dir: "vlc-3.0.21",
archive_name: "libADLMIDI-vlc-3.0.21-codec-Win32"
}
- {
name: "VLC Plugin with LLE 64b Rel",
os: windows-latest,
PLATFORM: x64,
WINXX_ARCH: win64,
extra_path: "/c/MinGW-w64/mingw64/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x64.cmake -DWITH_OLD_UTILS=OFF -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=OFF -DWITH_MIDIPLAY=OFF -DWITH_VLC_PLUGIN=ON -DVLC_PLUGIN_NOINSTALL=ON -DUSE_NUKED_OPL2_LLE_EMULATOR=ON -DUSE_NUKED_OPL3_LLE_EMULATOR=ON",
build_type: "Release",
package_type: "vlcplugin",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/x86_64-13.1.0-release-posix-seh-msvcrt-rt_v11-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw64/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw64/",
vlc_sdk_download: "https://mirror.yandex.ru/mirrors/ftp.videolan.org/vlc/3.0.21/win64/vlc-3.0.21-win64.7z", vlc_sdk_install_dir: "C:/MinGW-w64/mingw64", vlc_dir: "vlc-3.0.21",
archive_name: "libADLMIDI-LLE-vlc-3.0.21-codec-x64"
}
- {
name: "VLC Plugin with LLE 32b Rel",
os: windows-latest,
PLATFORM: Win32,
WINXX_ARCH: win32,
extra_path: "/c/Qt/5.6.3-i686/bin:/c/MinGW-w64/mingw32/bin",
extra_options: "-DCMAKE_TOOLCHAIN_FILE=`pwd`/cmake/ci_windows_mingw_toolchain_x32.cmake -DWITH_OLD_UTILS=OFF -DWITH_GENADLDATA=OFF -DlibADLMIDI_STATIC=ON -DlibADLMIDI_SHARED=OFF -DWITH_MIDIPLAY=OFF -DWITH_VLC_PLUGIN=ON -DVLC_PLUGIN_NOINSTALL=ON -DUSE_NUKED_OPL2_LLE_EMULATOR=ON -DUSE_NUKED_OPL3_LLE_EMULATOR=ON",
build_type: "Release",
package_type: "vlcplugin",
upload_directory: "www/win32/",
mingw_download: "https://wohlsoft.ru/docs/Software/MinGW/i686-12.2.0-release-posix-dwarf-rt_v10-rev1.7z", mingw_install_dir: "C:/MinGW-w64/",
ninja_download: "https://wohlsoft.ru/docs/Software/Ninja-Build/ninja-win.zip", ninja_install_dir: "C:/MinGW-w64/mingw32/bin",
lftp_download: "https://wohlsoft.ru/docs/Software/lftp-4.4.15.win64-openssl-1.0.1g.7z", lftp_install_dir: "C:/MinGW-w64/mingw32/",
vlc_sdk_download: "https://mirror.yandex.ru/mirrors/ftp.videolan.org/vlc/3.0.21/win32/vlc-3.0.21-win32.7z", vlc_sdk_install_dir: "C:/MinGW-w64/mingw32", vlc_dir: "vlc-3.0.21",
archive_name: "libADLMIDI-LLE-vlc-3.0.21-codec-Win32"
}
steps:
- name: Check for the upload support
id: upload-check
shell: bash
run: |
if [[ "${{ secrets.builds_login }}" != '' && \
"${{ secrets.builds_password }}" != '' && \
"${{ secrets.builds_host }}" != '' ]]; then
echo "available=true" >> $GITHUB_OUTPUT;
else
echo "available=false" >> $GITHUB_OUTPUT;
fi
- uses: actions/checkout@v3
with:
fetch-depth: 3
submodules: recursive
- uses: Wohlstand/[email protected]
- name: Check if a pull request
id: event-check
shell: bash
run: |
if [[ "${BRANCH_NAME}" == *"merge"* ]]; then
echo "--- This build is a pull-request ---"
echo "is_pull_request=true" >> $GITHUB_OUTPUT;
else
echo "--- This build is a normal branch build ---"
echo "is_pull_request=false" >> $GITHUB_OUTPUT;
fi
- name: Download MinGW
if: matrix.config.mingw_download
uses: carlosperate/download-file-action@v2
with:
file-url: "${{ matrix.config.mingw_download }}"
file-name: mingw.7z
- name: Extract MinGW
if: matrix.config.mingw_install_dir
shell: bash
run: |
7z x mingw.7z -o"${{ matrix.config.mingw_install_dir }}"
- name: Download Ninja
if: matrix.config.ninja_download
uses: carlosperate/download-file-action@v2
with:
file-url: "${{ matrix.config.ninja_download }}"
file-name: ninja.zip
- name: Extract Ninja
if: matrix.config.ninja_install_dir
shell: bash
run: |
7z x ninja.zip -o"${{ matrix.config.ninja_install_dir }}"
- name: Download LFTP
if: matrix.config.lftp_download
uses: carlosperate/download-file-action@v2
with:
file-url: "${{ matrix.config.lftp_download }}"
file-name: lftp.7z
- name: Extract LFTP
if: matrix.config.lftp_install_dir
shell: bash
run: |
7z x lftp.7z bin etc -o"${{ matrix.config.lftp_install_dir }}"
- name: Download VLC SDK
if: matrix.config.vlc_sdk_download
uses: carlosperate/download-file-action@v2
with:
file-url: "${{ matrix.config.vlc_sdk_download }}"
file-name: vlc_sdk.7z
- name: Extract VLC SDK
if: matrix.config.vlc_sdk_install_dir
shell: bash
run: |
7z x vlc_sdk.7z "${{ matrix.config.vlc_dir }}/sdk/include" "${{ matrix.config.vlc_dir }}/sdk/lib" -o"${{ matrix.config.vlc_sdk_install_dir }}"
mv -v "${{ matrix.config.vlc_sdk_install_dir }}/${{ matrix.config.vlc_dir }}/sdk/include/vlc" "${{ matrix.config.vlc_sdk_install_dir }}/include/"
cp -vra "${{ matrix.config.vlc_sdk_install_dir }}/${{ matrix.config.vlc_dir }}/sdk/lib/" "${{ matrix.config.vlc_sdk_install_dir }}/lib"
rm -vRf "${{ matrix.config.vlc_sdk_install_dir }}/${{ matrix.config.vlc_dir }}/sdk/lib"
- name: Configure
shell: bash
run: |
if [[ ! -z "${{ matrix.config.extra_path }}" ]]; then
export PATH=${{ matrix.config.extra_path }}:${PATH}
echo "PATH environment: ${PATH}"
fi
echo "====================================="
gcc --version
echo "====================================="
git --version
echo "====================================="
cmake --version
echo "====================================="
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.config.build_type }} -DCMAKE_INSTALL_PREFIX="`pwd`/libADLMIDI" ${{ matrix.config.extra_options }} .
- name: Build
shell: bash
run: |
if [[ ! -z "${{ matrix.config.extra_path }}" ]]; then
export PATH=${{ matrix.config.extra_path }}:${PATH}
export QT_DIR="${{ matrix.config.qt_dir }}"
export QtDir="${{ matrix.config.qt_dir }}"
fi
export MAKEFLAGS=--keep-going
cmake --build build --target all --config ${{ matrix.config.build_type }} --parallel 3
- name: Install
shell: bash
run: |
if [[ ! -z "${{ matrix.config.extra_path }}" ]]; then
export PATH=${{ matrix.config.extra_path }}:${PATH}
export QT_DIR="${{ matrix.config.qt_dir }}"
export QtDir="${{ matrix.config.qt_dir }}"
fi
export MAKEFLAGS=--keep-going
cmake --build build --target install --config ${{ matrix.config.build_type }}
- name: Pack Library Kit
if: success() && matrix.config.package_type == 'library'
shell: bash
run: |
mkdir _packed
if [[ ! -z "${{ matrix.config.pack_dlls }}" ]]; then
for q in ${{ matrix.config.pack_dlls }}; do
cp -v "${{ matrix.config.pack_dlls_from }}/$q" libADLMIDI/bin
done
fi
7z a -t7z -mx9 "_packed/${{ matrix.config.archive_name}}.7z" "libADLMIDI"
- name: Pack VLC plugin
if: success() && matrix.config.package_type == 'vlcplugin'
shell: bash
run: |
mkdir _packed
7z a -t7z -mx9 "_packed/${{ matrix.config.archive_name}}.7z" "./build/libadlmidi_plugin.dll"
- name: Deploy to builds.wohlsoft.ru
if: success() && github.event_name != 'pull_request' && steps.event-check.outputs.is_pull_request == 'false' && steps.upload-check.outputs.available == 'true'
shell: bash
run: |
if [[ ! -z "${{ matrix.config.extra_path }}" ]]; then
export PATH=${{ matrix.config.extra_path }}:${PATH}
fi
UPLOAD_LIST="set ssl:verify-certificate no;"
for q in ./_packed/*.7z; do
UPLOAD_LIST="${UPLOAD_LIST} put -O ${{ matrix.config.upload_directory }} $q;"
done
lftp -e "${UPLOAD_LIST} exit" -u ${{ secrets.builds_login }},${{ secrets.builds_password }} ${{ secrets.builds_host }}
- name: List Build Directory
if: always()
shell: bash
run: |
git status
ls -lR build