From 94b3090092d1d147c4b9ec3e90f92ed8058dcd82 Mon Sep 17 00:00:00 2001 From: Jannick Kremer Date: Fri, 19 Apr 2024 10:53:33 +0200 Subject: [PATCH] CI: Switch from AppVeyor to Github Actions CI --- .github/workflows/main.yml | 247 ++++++++++++++++++++++++++++++++++ README.md | 2 +- appveyor.yml | 266 ------------------------------------- 3 files changed, 248 insertions(+), 267 deletions(-) create mode 100644 .github/workflows/main.yml delete mode 100644 appveyor.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..d9d1fc9 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,247 @@ +name: Build + +on: + push: + branches: "*" + tags: + - "[0-9].[0-9].[0-9]" + +jobs: + build_windows: + name: Build for Windows + runs-on: windows-latest + + steps: + - name: Set up MSVC Environment + uses: compnerd/gha-setup-vsdevenv@main + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: "6.5.*" + modules: qtmultimedia + - name: Install Taglib + run: | + git clone --recurse-submodules https://github.com/taglib/taglib.git + cd taglib + cmake -B build -G "Visual Studio 17 2022" -A x64 -DWITH_ZLIB=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_STATIC_RUNTIME=OFF -DBUILD_TESTING=OFF + msbuild build/install.vcxproj -p:Configuration=Release + - name: Install ZenLib + run: | + git clone https://github.com/MediaArea/ZenLib.git + cd ZenLib + cmake -S Project/CMake -B build -G "Visual Studio 17 2022" -A x64 + msbuild build/install.vcxproj -p:Configuration=Release + - name: Install zlib + run: | + git clone https://github.com/MediaArea/zlib.git + cd zlib + cmake -B build -G "Visual Studio 17 2022" -A x64 + msbuild build/install.vcxproj -p:Configuration=Release + - name: Install libmediainfo + run: | + git clone https://github.com/MediaArea/MediaInfoLib.git + cd MediaInfoLib + cmake -S Project/CMake -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release + msbuild build/install.vcxproj -p:Configuration=Release + - name: Install cld2 + run: | + git clone https://github.com/CLD2Owners/cld2.git + cd cld2/internal + cl /TP /GR /EHsc /c /MD cldutil.cc cldutil_shared.cc compact_lang_det.cc compact_lang_det_hint_code.cc compact_lang_det_impl.cc debug.cc fixunicodevalue.cc generated_entities.cc generated_language.cc generated_ulscript.cc getonescriptspan.cc lang_script.cc offsetmap.cc scoreonescriptspan.cc tote.cc utf8statetable.cc cld_generated_cjk_uni_prop_80.cc cld2_generated_cjk_compatible.cc cld_generated_cjk_delta_bi_32.cc generated_distinct_bi_0.cc cld2_generated_quad0122.cc cld2_generated_deltaocta0122.cc cld2_generated_distinctocta0122.cc cld_generated_score_quad_octa_0122.cc + link /dll /out:cld2.dll *.obj + lib /out:cld2.lib *.obj + copy cld2.lib ../../lib/win64 + copy cld2.dll ../../lib/win64 + - name: Build plugins + run: | + cd src/plugins/audiotag/ + qmake audiotag.pro -spec win32-msvc + nmake + cd ../cleanup + qmake6 cleanup.pro -spec win32-msvc + nmake + cd ../lyric + qmake6 lyric.pro -spec win32-msvc + nmake + cd ../preparatory + qmake6 preparatory.pro -spec win32-msvc + nmake + cd ../rename + qmake6 rename.pro -spec win32-msvc + nmake + - name: Build UltraStar-Manager + run: | + cp "C:/Program Files/taglib/bin/tag.dll" bin/release/ + cp "C:/Program Files/zlib/bin/zlib.dll" bin/release/ + cp lib/win64/cld2.dll bin/release/ + cd src + qmake6 UltraStar-Manager.pro -spec win32-msvc + nmake + - name: Create installer + uses: joncloud/makensis-action@v4.1 + with: + script-file: setup/win64/UltraStar-Manager.nsi + - name: Upload Portable Artifact + uses: actions/upload-artifact@v4 + with: + name: WIN64-UltraStar-Manager-portable + path: bin/release + if-no-files-found: error + - name: Upload Installer Artifact + uses: actions/upload-artifact@v4 + with: + name: WIN64-UltraStar-Manager-installer + path: bin/UltraStar-Manager*-setup.exe + if-no-files-found: error + + build_mac: + name: Build for MacOS + runs-on: macos-latest + + steps: + - name: Get Number of CPU Cores + uses: SimenB/github-actions-cpu-cores@v2 + id: cpu-cores + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Install Dependencies + run: | + brew install qt + brew install taglib + brew install mediainfo; + brew install create-dmg + - name: Fix Qt lib rpaths # see: https://github.com/orgs/Homebrew/discussions/2823#discussioncomment-2010340) + run: | + install_name_tool -id '@rpath/QtCore.framework/Versions/A/QtCore' /usr/local/lib/QtCore.framework/Versions/A/QtCore + install_name_tool -id '@rpath/QtGui.framework/Versions/A/QtGui' /usr/local/lib/QtGui.framework/Versions/A/QtGui + install_name_tool -id '@rpath/QtNetwork.framework/Versions/A/QtNetwork' /usr/local/lib/QtNetwork.framework/Versions/A/QtNetwork + install_name_tool -id '@rpath/QtWidgets.framework/Versions/A/QtWidgets' /usr/local/lib/QtWidgets.framework/Versions/A/QtWidgets + install_name_tool -id '@rpath/QtPdf.framework/Versions/A/QtPdf' /usr/local/lib/QtPdf.framework/Versions/A/QtPdf + install_name_tool -id '@rpath/QtSvg.framework/Versions/A/QtSvg' /usr/local/lib/QtSvg.framework/Versions/A/QtSvg + install_name_tool -id '@rpath/QtVirtualKeyboard.framework/Versions/A/QtVirtualKeyboard' /usr/local/lib/QtVirtualKeyboard.framework/Versions/A/QtVirtualKeyboard + install_name_tool -id '@rpath/QtQuick.framework/Versions/A/QtQuick' /usr/local/lib/QtQuick.framework/Versions/A/QtQuick + install_name_tool -id '@rpath/QtQmlModels.framework/Versions/A/QtQmlModels' /usr/local/lib/QtQmlModels.framework/Versions/A/QtQmlModels + install_name_tool -id '@rpath/QtQml.framework/Versions/A/QtQml' /usr/local/lib/QtQml.framework/Versions/A/QtQml + install_name_tool -id '@rpath/QtOpenGL.framework/Versions/A/QtOpenGL' /usr/local/lib/QtOpenGL.framework/Versions/A/QtOpenGL + install_name_tool -id '@rpath/QtMultimedia.framework/Versions/A/QtMultimedia' /usr/local/lib/QtMultimedia.framework/Versions/A/QtMultimedia + - name: Build plugins + run: | + cd src/plugins/audiotag/ + qmake6 audiotag.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../cleanup/ + qmake6 cleanup.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../lyric/ + qmake6 lyric.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../preparatory/ + qmake6 preparatory.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../rename/ + qmake6 rename.pro + make -j${{ steps.cpu-cores.outputs.count }} + - name: Build UltraStar-Manager + run: | + cd src + qmake6 UltraStar-Manager.pro + make -j$${{ steps.cpu-cores.outputs.count }} + cd ../bin/release + mv UltraStar-Manager.dmg MAC-UltraStar-Manager.dmg + - name: Upload Portable Artifact + uses: actions/upload-artifact@v4 + with: + name: MAC-UltraStar-Manager-portable + path: bin/release + if-no-files-found: error + - name: Upload Image Artifact + uses: actions/upload-artifact@v4 + with: + name: MAC-UltraStar-Manager-image + path: bin/release/MAC-UltraStar-Manager.dmg + if-no-files-found: error + + build_linux: + name: Build for Linux + runs-on: ubuntu-20.04 + + steps: + - name: Get Number of CPU Cores + uses: SimenB/github-actions-cpu-cores@v2 + id: cpu-cores + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Install Qt + uses: jurplel/install-qt-action@v3 + with: + version: "6.5.*" + modules: qtmultimedia + - name: Install Dependencies + run: | + sudo apt update -qq + sudo apt install -y libgl1-mesa-dev build-essential libpulse-mainloop-glib0 libgstreamer-plugins-base1.0-dev + sudo apt install -y libtag1-dev libcld2-dev libmediainfo-dev + sudo apt install -y libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb-dev libxkbcommon-x11-0 libxcb-cursor0 libgtk2.0-dev + - name: Build plugins + run: | + cd src/plugins/audiotag/ + qmake6 audiotag.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../cleanup/ + qmake6 cleanup.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../lyric/ + qmake6 lyric.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../preparatory/ + qmake6 preparatory.pro + make -j${{ steps.cpu-cores.outputs.count }} + cd ../rename/ + qmake6 rename.pro + make -j${{ steps.cpu-cores.outputs.count }} + - name: Build UltraStar-Manager + run: | + cd src + qmake6 UltraStar-Manager.pro + make -j${{ steps.cpu-cores.outputs.count }} + - name: Create AppImage + run: | + cd bin/release + wget https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage + chmod a+x linuxdeployqt*.AppImage + cp ../../setup/unix/UltraStar-Manager.desktop . + cp ../../setup/unix/UltraStar-Manager.png . + sed -i "s/Name=UltraStar-Manager/Name=LINUX-UltraStar-Manager/g" UltraStar-Manager.desktop + ./linuxdeployqt*.AppImage UltraStar-Manager.desktop -bundle-non-qt-libs -appimage + mv LINUX-UltraStar-Manager-*.AppImage LINUX-UltraStar-Manager.AppImage + - name: Upload AppImage Artifact + uses: actions/upload-artifact@v4 + with: + name: LINUX-UltraStar-Manager-appimage + path: bin/release/LINUX-UltraStar-Manager.AppImage + if-no-files-found: error + + draft_release: + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') + name: Draft a Release + needs: [build_windows, build_mac, build_linux] + runs-on: ubuntu-20.04 + steps: + - name: Download Artifacts from Build Jobs + uses: actions/download-artifact@v4 + with: + path: . + pattern: "*" + - name: Prepare Artifacts + run: | + zip -r MAC-UltraStar-Manager-portable.zip MAC-UltraStar-Manager-portable + zip -r WIN64-UltraStar-Manager-portable.zip WIN64-UltraStar-Manager-portable + mv WIN64-UltraStar-Manager-installer/UltraStar-Manager* WIN64-UltraStar-Manager-installer/WIN64-UltraStar-Manager-setup.exe + - name: Create Release + uses: ncipollo/release-action@v1 + with: + artifacts: "LINUX-UltraStar-Manager-appimage/*, MAC-UltraStar-Manager-image/*, MAC-UltraStar-Manager-portable.zip, WIN64-UltraStar-Manager-installer/*, WIN64-UltraStar-Manager-portable.zip" + draft: true + artifactErrorsFailBuild: true diff --git a/README.md b/README.md index 4e1b659..d2da40e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # UltraStar-Manager Development README -[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/gypi0njftnnsmfij/branch/master?svg=true)](https://ci.appveyor.com/project/bohning/ultrastar-manager/branch/master) +[![Build](https://github.com/UltraStar-Deluxe/UltraStar-Manager/actions/workflows/main.yml/badge.svg)](https://github.com/UltraStar-Deluxe/UltraStar-Manager/actions/workflows/main.yml) [![License](https://img.shields.io/badge/license-GPLv2-blue.svg)](LICENSE) ![UltraStar-Manager Logo](https://github.com/UltraStar-Deluxe/UltraStar-Manager/blob/master/src/resources/UltraStar-Manager128.png) diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index c19c4d5..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,266 +0,0 @@ -version: 1.8.3.{build} - -branches: - only: - - master - -environment: - global: - APPVEYOR_SAVE_CACHE_ON_ERROR: true - APPVEYOR_CACHE_ENTRY_ZIP_ARGS: -t7z -m0=lzma -mx=4 - APPVEYOR_RDP_PASSWORD: UltraStar-Manager! - matrix: - # Windows - - ARCH: x64 - COMPILER: msvc2019 - QTDIR: C:\Qt\6.5\msvc2019_64 - # macOS - - ARCH: x64 - COMPILER: Clang - #QTDIR: Qt/6.5/macos # if pre-installed Qt is used - # Ubuntu - - ARCH: x64 - COMPILER: GCC - QTDIR: Qt/6.6/gcc_64 - -image: - # AppVeyor builds are ordered by the image list: - - Visual Studio 2022 - - macos - - Ubuntu2004 - -matrix: - exclude: - # Exclude invalid options - - image: Visual Studio 2022 - COMPILER: Clang - - image: Visual Studio 2022 - COMPILER: GCC - - image: macos - COMPILER: msvc2019 - - image: macos - COMPILER: GCC - - image: Ubuntu2004 - COMPILER: msvc2019 - - image: Ubuntu2004 - COMPILER: Clang - -for: - # Windows (MSVC) - - matrix: - only: - - image: Visual Studio 2022 - - clone_folder: C:\UltraStar-Manager - - init: - - cmd: git config --global core.autocrlf input - - cmd: echo NUMBER_OF_PROCESSORS=%NUMBER_OF_PROCESSORS% - - cmd: echo PROCESSOR_IDENTIFIER=%PROCESSOR_IDENTIFIER% - - cmd: echo QTDIR=%QTDIR% - - cmd: echo CMAKE_GENERATOR=%CMAKE_GENERATOR% - - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - - install: - - ps: $env:package_version = ("$(git describe --tags --always --long)").trim() - - ps: Update-AppveyorBuild -Version "$env:package_version-$env:APPVEYOR_BUILD_NUMBER" - - before_build: - - cmd: set PATH=%QTDIR%\bin;C:\Program Files (x86)\NSIS\;%PATH% - - cmd: echo PATH=%PATH% - - cmd: call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" - - build_script: - # build taglib - - git clone --recurse-submodules https://github.com/taglib/taglib.git - - cd taglib - - cmake -B build -G "Visual Studio 17 2022" -A x64 -DWITH_ZLIB=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_STATIC_RUNTIME=OFF -DBUILD_TESTING=OFF - - msbuild build/install.vcxproj -p:Configuration=Release - - cd .. - # build ZenLib - - git clone https://github.com/MediaArea/ZenLib.git - - cd ZenLib - - cmake -S Project/CMake -B build -G "Visual Studio 17 2022" -A x64 - - msbuild build/install.vcxproj -p:Configuration=Release - - cd .. - # get zlib - - git clone https://github.com/MediaArea/zlib.git - - cd zlib - - cmake -B build -G "Visual Studio 17 2022" -A x64 - - msbuild build/install.vcxproj -p:Configuration=Release - - cd .. - # build libmediainfo - - git clone https://github.com/MediaArea/MediaInfoLib.git - - cd MediaInfoLib - - cmake -S Project/CMake -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release - - msbuild build/install.vcxproj -p:Configuration=Release - - cd .. - # build cld2 - - git clone https://github.com/CLD2Owners/cld2 - - cd cld2/internal - - cl /MD -c cldutil.cc cldutil_shared.cc compact_lang_det.cc compact_lang_det_hint_code.cc compact_lang_det_impl.cc debug.cc fixunicodevalue.cc generated_entities.cc generated_language.cc generated_ulscript.cc getonescriptspan.cc lang_script.cc offsetmap.cc scoreonescriptspan.cc tote.cc utf8statetable.cc cld_generated_cjk_uni_prop_80.cc cld2_generated_cjk_compatible.cc cld_generated_cjk_delta_bi_4.cc generated_distinct_bi_0.cc cld2_generated_quadchrome_2.cc cld2_generated_deltaoctachrome.cc cld2_generated_distinctoctachrome.cc cld_generated_score_quad_octa_2.cc - - link /dll /OUT:cld2.dll cldutil.obj cldutil_shared.obj compact_lang_det.obj compact_lang_det_hint_code.obj compact_lang_det_impl.obj debug.obj fixunicodevalue.obj generated_entities.obj generated_language.obj generated_ulscript.obj getonescriptspan.obj lang_script.obj offsetmap.obj scoreonescriptspan.obj tote.obj utf8statetable.obj cld_generated_cjk_uni_prop_80.obj cld2_generated_cjk_compatible.obj cld_generated_cjk_delta_bi_4.obj generated_distinct_bi_0.obj cld2_generated_quadchrome_2.obj cld2_generated_deltaoctachrome.obj cld2_generated_distinctoctachrome.obj cld_generated_score_quad_octa_2.obj - - lib /OUT:cld2.lib cldutil.obj cldutil_shared.obj compact_lang_det.obj compact_lang_det_hint_code.obj compact_lang_det_impl.obj debug.obj fixunicodevalue.obj generated_entities.obj generated_language.obj generated_ulscript.obj getonescriptspan.obj lang_script.obj offsetmap.obj scoreonescriptspan.obj tote.obj utf8statetable.obj cld_generated_cjk_uni_prop_80.obj cld2_generated_cjk_compatible.obj cld_generated_cjk_delta_bi_4.obj generated_distinct_bi_0.obj cld2_generated_quadchrome_2.obj cld2_generated_deltaoctachrome.obj cld2_generated_distinctoctachrome.obj cld_generated_score_quad_octa_2.obj - - cp cld2.lib ../../lib/win64/cld2.lib - - cp cld2.dll ../../lib/win64/cld2.dll - - cd ../.. - # build UltraStar-Manager - - cmd: cd src\plugins\audiotag\ - - cmd: qmake audiotag.pro -spec win32-msvc - - cmd: nmake - - cmd: cd ..\cleanup\ - - cmd: qmake6 cleanup.pro -spec win32-msvc - - cmd: nmake - - cmd: cd ..\lyric\ - - cmd: qmake6 lyric.pro -spec win32-msvc - - cmd: nmake - - cmd: cd ..\preparatory\ - - cmd: qmake6 preparatory.pro -spec win32-msvc - - cmd: nmake - - cmd: cd ..\rename\ - - cmd: qmake6 rename.pro -spec win32-msvc - - cmd: nmake - - cmd: cd ..\..\ - - cp "C:/Program Files/taglib/bin/tag.dll" ../bin/release/ - - cp "C:/Program Files/zlib/bin/zlib.dll" ../bin/release/ - - cp ../lib/win64/cld2.dll ../bin/release/ - - cmd: qmake6 UltraStar-Manager.pro -spec win32-msvc - - cmd: nmake - - after_build: - - cmd: makensis ../setup/win64/UltraStar-Manager.nsi - - artifacts: - - path: bin\release - name: UltraStar-Manager-portable - type: zip - - path: bin\UltraStar-Manager*-setup.exe - name: UltraStar-Manager-installer - - on_failure: - # Change false to true to block build and investigate build failures - - ps: $blockRdp = $false; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - - # Mac - - matrix: - only: - - image: macos - - clone_folder: ~/UltraStar-Manager - - init: - - sh: echo _NPROCESSORS_ONLN=$(getconf _NPROCESSORS_ONLN) - #- sh: export PATH=$HOME/$QTDIR/bin:/usr/local/bin:$PATH # if pre-installed Qt is used - - sh: export PATH=/usr/local/bin:$PATH # if brew-installed Qt is used - - sh: set PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" - - install: - - ps: $env:package_version = ("$(git describe --tags --always --long)").trim() - - ps: Update-AppveyorBuild -Version "$env:package_version-$env:APPVEYOR_BUILD_NUMBER" - - brew update - - brew install qt; - - brew install taglib; - - brew install mediainfo; - - brew install create-dmg; - # fix Qt lib rpaths, see: https://github.com/orgs/Homebrew/discussions/2823#discussioncomment-2010340) - - install_name_tool -id '@rpath/QtCore.framework/Versions/A/QtCore' /usr/local/lib/QtCore.framework/Versions/A/QtCore - - install_name_tool -id '@rpath/QtGui.framework/Versions/A/QtGui' /usr/local/lib/QtGui.framework/Versions/A/QtGui - - install_name_tool -id '@rpath/QtNetwork.framework/Versions/A/QtNetwork' /usr/local/lib/QtNetwork.framework/Versions/A/QtNetwork - - install_name_tool -id '@rpath/QtWidgets.framework/Versions/A/QtWidgets' /usr/local/lib/QtWidgets.framework/Versions/A/QtWidgets - - install_name_tool -id '@rpath/QtPdf.framework/Versions/A/QtPdf' /usr/local/lib/QtPdf.framework/Versions/A/QtPdf - - install_name_tool -id '@rpath/QtSvg.framework/Versions/A/QtSvg' /usr/local/lib/QtSvg.framework/Versions/A/QtSvg - - install_name_tool -id '@rpath/QtVirtualKeyboard.framework/Versions/A/QtVirtualKeyboard' /usr/local/lib/QtVirtualKeyboard.framework/Versions/A/QtVirtualKeyboard - - install_name_tool -id '@rpath/QtQuick.framework/Versions/A/QtQuick' /usr/local/lib/QtQuick.framework/Versions/A/QtQuick - - install_name_tool -id '@rpath/QtQmlModels.framework/Versions/A/QtQmlModels' /usr/local/lib/QtQmlModels.framework/Versions/A/QtQmlModels - - install_name_tool -id '@rpath/QtQml.framework/Versions/A/QtQml' /usr/local/lib/QtQml.framework/Versions/A/QtQml - - install_name_tool -id '@rpath/QtOpenGL.framework/Versions/A/QtOpenGL' /usr/local/lib/QtOpenGL.framework/Versions/A/QtOpenGL - - install_name_tool -id '@rpath/QtMultimedia.framework/Versions/A/QtMultimedia' /usr/local/lib/QtMultimedia.framework/Versions/A/QtMultimedia - - build_script: - - cd src/plugins/audiotag/ - - qmake6 audiotag.pro - - make -j$(getconf _NPROCESSORS_ONLN) - - cd ../cleanup/ - - qmake6 cleanup.pro - - make -j$(getconf _NPROCESSORS_ONLN) - - cd ../lyric/ - - qmake6 lyric.pro - - make -j$(getconf _NPROCESSORS_ONLN) - - cd ../preparatory/ - - qmake6 preparatory.pro - - make -j$(getconf _NPROCESSORS_ONLN) - - cd ../rename/ - - qmake6 rename.pro - - make -j$(getconf _NPROCESSORS_ONLN) - - cd ../../ - - qmake6 UltraStar-Manager.pro - - make -j$(getconf _NPROCESSORS_ONLN) - - cd ../bin/release/ - - ls - - artifacts: - - path: bin/release - name: UltraStar-Manager portable - type: zip - - path: bin/release/UltraStar-Manager.dmg - name: UltraStar-Manager disk image - - # Ubuntu (AppImage) - - matrix: - only: - - image: Ubuntu2004 - - clone_folder: ~/UltraStar-Manager - - init: - - sh: echo _NPROCESSORS_ONLN=$(getconf _NPROCESSORS_ONLN) - - sh: export PATH=$HOME/$QTDIR/bin:$PATH - - install: - - ps: $env:package_version = ("$(git describe --tags --always --long)").trim() - - ps: Update-AppveyorBuild -Version "$env:package_version-$env:APPVEYOR_BUILD_NUMBER" - - sh: sudo apt update -qq - - sh: sudo apt install -y libgl1-mesa-dev build-essential libpulse-mainloop-glib0 libgstreamer-plugins-base1.0-dev - # UltraStar-Manager needs these: - - sh: sudo apt install -y libtag1-dev libcld2-dev libmediainfo-dev - # linuxdeployqt needs these: - - sh: sudo apt install -y libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-render-util0 libxcb-xinerama0 libxcb-xkb-dev libxkbcommon-x11-0 libxcb-cursor0 libgtk2.0-dev - # build qtstyleplugins with gtk2.0 - #- sh: git clone https://code.qt.io/qt/qtstyleplugins.git && cd qtstyleplugins && qmake && make -j$(nproc) && sudo make install && cd - - - build_script: - - sh: cd src/plugins/audiotag/ - - sh: qmake6 audiotag.pro - - sh: make -j$(getconf _NPROCESSORS_ONLN) - - sh: cd ../cleanup/ - - sh: qmake6 cleanup.pro - - sh: make -j$(getconf _NPROCESSORS_ONLN) - - sh: cd ../lyric/ - - sh: qmake6 lyric.pro - - sh: make -j$(getconf _NPROCESSORS_ONLN) - - sh: cd ../preparatory/ - - sh: qmake6 preparatory.pro - - sh: make -j$(getconf _NPROCESSORS_ONLN) - - sh: cd ../rename/ - - sh: qmake6 rename.pro - - sh: make -j$(getconf _NPROCESSORS_ONLN) - - sh: cd ../../ - - sh: qmake6 UltraStar-Manager.pro - - sh: make -j$(getconf _NPROCESSORS_ONLN) - - sh: cd ../bin/release/ - # Build AppImage - #- sh: wget https://github.com/probonopd/linuxdeployqt/releases/download/5/linuxdeployqt-5-x86_64.AppImage # linuxdeployqt 5 - #- sh: wget https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage # linuxdeployqt 6 - #- sh: wget https://github.com/probonopd/linuxdeployqt/releases/download/7/linuxdeployqt-7-x86_64.AppImage # linuxdeployqt 7 - - sh: wget https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage - - sh: chmod a+x linuxdeployqt*.AppImage - - sh: unset QTDIR - - sh: unset QT_PLUGIN_PATH - - sh: unset LD_LIBRARY_PATH - - sh: cp ../../setup/unix/UltraStar-Manager.desktop . - - sh: cp ../../setup/unix/UltraStar-Manager.png . - - sh: ./linuxdeployqt*.AppImage UltraStar-Manager.desktop -bundle-non-qt-libs -appimage - - artifacts: - - path: bin/release/UltraStar-Manager-*.AppImage - name: UltraStar-Manager AppImage Package