name: C/C++ CI on: [push, pull_request] jobs: build_source: name: Create source tarball runs-on: ubuntu-latest container: image: opensuse/leap:15.3 steps: - uses: actions/checkout@v1.2.0 - name: Update packages run: zypper --non-interactive --gpg-auto-import-keys ref - name: Install openSUSE dependencies run: > zypper --non-interactive --gpg-auto-import-keys install lsb-release rpm-build git tar make cmake gcc gcc-c++ gettext-tools glibc-devel libboost_headers-devel boost-devel glib2-devel glib2-tools dbus-1-devel alsa-devel libnotify-devel libgnutls-devel protobuf-devel sqlite3-devel libpulse-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel taglib-devel libQt5Core-devel libQt5Gui-devel libQt5Gui-private-headers-devel libQt5Widgets-devel libQt5Concurrent-devel libQt5Network-devel libQt5Sql-devel libQt5DBus-devel libQt5Test-devel libqt5-qtbase-common-devel libQt5Sql5-sqlite libqt5-linguist-devel libqt5-qtx11extras-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel desktop-file-utils update-desktop-files appstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh build_opensuse_lp153_qt5: name: Build openSUSE Leap 15.3 Qt 5 runs-on: ubuntu-latest container: image: opensuse/leap:15.3 steps: - uses: actions/checkout@v1.2.0 - name: Add tagparser repo run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Leap_15.3/ repo-tagparser - name: Update packages run: zypper --non-interactive --gpg-auto-import-keys ref - name: Install openSUSE dependencies run: > zypper --non-interactive --gpg-auto-import-keys install lsb-release rpm-build git tar make cmake gcc gcc-c++ gettext-tools glibc-devel libboost_headers-devel boost-devel glib2-devel glib2-tools dbus-1-devel alsa-devel libnotify-devel libgnutls-devel protobuf-devel sqlite3-devel libpulse-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel taglib-devel tagparser-devel libQt5Core-devel libQt5Gui-devel libQt5Gui-private-headers-devel libQt5Widgets-devel libQt5Concurrent-devel libQt5Network-devel libQt5Sql-devel libQt5DBus-devel libQt5Test-devel libqt5-qtbase-common-devel libQt5Sql5-sqlite libqt5-linguist-devel libqt5-qtx11extras-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel desktop-file-utils update-desktop-files appstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT5=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/ - name: Build RPM working-directory: build run: rpmbuild -ba ../dist/unix/strawberry.spec build_opensuse_lp153_qt6: name: Build openSUSE Leap 15.3 Qt 6 runs-on: ubuntu-latest container: image: opensuse/leap:15.3 steps: - uses: actions/checkout@v1.2.0 - name: Add tagparser repo run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Leap_15.3/ repo-tagparser - name: Add Qt 6 repo run: zypper -n ar -c -f -n 'repo-qt6' https://download.opensuse.org/repositories/home:/jonaski:/qt6/openSUSE_Leap_15.3/ repo-qt6 - name: Update packages run: zypper --non-interactive --gpg-auto-import-keys ref - name: Install openSUSE dependencies run: > zypper --non-interactive --gpg-auto-import-keys install lsb-release rpm-build git tar make cmake gcc10 gcc10-c++ gettext-tools glibc-devel libboost_headers-devel boost-devel glib2-devel glib2-tools dbus-1-devel alsa-devel libnotify-devel libgnutls-devel protobuf-devel sqlite3-devel libpulse-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel taglib-devel tagparser-devel qt6-core-devel qt6-gui-devel qt6-gui-private-devel qt6-widgets-devel qt6-concurrent-devel qt6-network-devel qt6-sql-devel qt6-dbus-devel qt6-test-devel qt6-base-common-devel qt6-sql-sqlite qt6-linguist-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel desktop-file-utils update-desktop-files appstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT6=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/ - name: Build RPM working-directory: build env: CC: gcc-10 CXX: g++-10 run: rpmbuild -ba ../dist/unix/strawberry.spec build_opensuse_lp154_qt5: name: Build openSUSE Leap 15.4 Qt 5 runs-on: ubuntu-latest container: image: opensuse/leap:15.4 steps: - uses: actions/checkout@v1.2.0 - name: Update packages run: zypper --non-interactive --gpg-auto-import-keys ref - name: Install openSUSE dependencies run: > zypper --non-interactive --gpg-auto-import-keys install lsb-release rpm-build git tar make cmake gcc gcc-c++ gettext-tools glibc-devel libboost_headers-devel boost-devel glib2-devel glib2-tools dbus-1-devel alsa-devel libnotify-devel libgnutls-devel protobuf-devel sqlite3-devel libpulse-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel taglib-devel libQt5Core-devel libQt5Gui-devel libQt5Gui-private-headers-devel libQt5Widgets-devel libQt5Concurrent-devel libQt5Network-devel libQt5Sql-devel libQt5DBus-devel libQt5Test-devel libqt5-qtbase-common-devel libQt5Sql5-sqlite libqt5-linguist-devel libqt5-qtx11extras-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel desktop-file-utils update-desktop-files appstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT5=ON -DUSE_TAGLIB=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/ - name: Build RPM working-directory: build run: rpmbuild -ba ../dist/unix/strawberry.spec build_opensuse_lp154_qt6: name: Build openSUSE Leap 15.4 Qt 6 runs-on: ubuntu-latest container: image: opensuse/leap:15.4 steps: - uses: actions/checkout@v1.2.0 - name: Add Qt 6 repo run: zypper -n ar -c -f -n 'repo-qt6' https://download.opensuse.org/repositories/home:/jonaski:/qt6/15.4/ repo-qt6 - name: Update packages run: zypper --non-interactive --gpg-auto-import-keys ref - name: Install openSUSE dependencies run: > zypper --non-interactive --gpg-auto-import-keys install lsb-release rpm-build git tar make cmake gcc10 gcc10-c++ gettext-tools glibc-devel libboost_headers-devel boost-devel glib2-devel glib2-tools dbus-1-devel alsa-devel libnotify-devel libgnutls-devel protobuf-devel sqlite3-devel libpulse-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel taglib-devel qt6-core-devel qt6-gui-devel qt6-gui-private-devel qt6-widgets-devel qt6-concurrent-devel qt6-network-devel qt6-sql-devel qt6-dbus-devel qt6-test-devel qt6-base-common-devel qt6-sql-sqlite qt6-linguist-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel desktop-file-utils update-desktop-files appstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT6=ON -DUSE_TAGLIB=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/ - name: Build RPM working-directory: build env: CC: gcc-10 CXX: g++-10 run: rpmbuild -ba ../dist/unix/strawberry.spec build_opensuse_tumbleweed_qt5: name: Build openSUSE Tumbleweed Qt 5 runs-on: ubuntu-latest container: image: opensuse/tumbleweed steps: - uses: actions/checkout@v1.2.0 - name: Add tagparser repo run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Tumbleweed/ repo-tagparser - name: Update packages run: zypper --non-interactive --gpg-auto-import-keys ref - name: Upgrade packages run: zypper --non-interactive --gpg-auto-import-keys dup - name: Install openSUSE dependencies run: > zypper --non-interactive --gpg-auto-import-keys install lsb-release rpm-build git tar make cmake gcc gcc-c++ gettext-tools glibc-devel libboost_headers-devel boost-devel glib2-devel glib2-tools dbus-1-devel alsa-devel libnotify-devel libgnutls-devel protobuf-devel sqlite3-devel libpulse-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel taglib-devel tagparser-devel libQt5Core-devel libQt5Gui-devel libQt5Gui-private-headers-devel libQt5Widgets-devel libQt5Concurrent-devel libQt5Network-devel libQt5Sql-devel libQt5DBus-devel libQt5Test-devel libqt5-qtbase-common-devel libQt5Sql5-sqlite libqt5-linguist-devel libqt5-qtx11extras-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel desktop-file-utils update-desktop-files appstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT5=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/ - name: Build RPM working-directory: build run: rpmbuild -ba ../dist/unix/strawberry.spec build_opensuse_tumbleweed_qt6: name: Build openSUSE Tumbleweed Qt 6 runs-on: ubuntu-latest container: image: opensuse/tumbleweed steps: - uses: actions/checkout@v1.2.0 - name: Add tagparser repo run: zypper -n ar -c -f -n 'repo-tagparser' https://download.opensuse.org/repositories/home:/mkittler/openSUSE_Tumbleweed/ repo-tagparser - name: Update packages run: zypper --non-interactive --gpg-auto-import-keys ref - name: Upgrade packages run: zypper --non-interactive --gpg-auto-import-keys dup - name: Install openSUSE dependencies run: > zypper --non-interactive --gpg-auto-import-keys install lsb-release rpm-build git tar make cmake gcc gcc-c++ gettext-tools glibc-devel libboost_headers-devel boost-devel glib2-devel glib2-tools dbus-1-devel alsa-devel libnotify-devel libgnutls-devel protobuf-devel sqlite3-devel libpulse-devel gstreamer-devel gstreamer-plugins-base-devel vlc-devel taglib-devel tagparser-devel qt6-core-devel qt6-gui-devel qt6-gui-private-devel qt6-widgets-devel qt6-concurrent-devel qt6-network-devel qt6-sql-devel qt6-dbus-devel qt6-test-devel qt6-base-common-devel qt6-sql-sqlite qt6-linguist-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel desktop-file-utils update-desktop-files appstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON -DBUILD_WITH_QT6=ON -DUSE_TAGLIB=ON -DUSE_TAGPARSER=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz /usr/src/packages/SOURCES/ - name: Build RPM working-directory: build run: rpmbuild -ba ../dist/unix/strawberry.spec build_fedora_35: name: Build Fedora 35 runs-on: ubuntu-latest container: image: fedora:35 env: RPM_BUILD_NCPUS: "2" steps: - uses: actions/checkout@v1.2.0 - name: Update packages run: yum update --assumeyes - name: Upgrade packages run: yum upgrade --assumeyes - name: Install Fedora dependencies run: > dnf install --assumeyes @development-tools redhat-lsb-core which git glibc gcc-c++ rpmdevtools make cmake pkgconfig glib man tar gettext openssh boost-devel dbus-devel protobuf-devel protobuf-compiler sqlite-devel alsa-lib-devel pulseaudio-libs-devel libnotify-devel gnutls-devel qt6-qtbase-devel qt6-qtbase-private-devel qt6-qttools-devel gstreamer1-devel gstreamer1-plugins-base-devel taglib-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel fftw-devel desktop-file-utils libappstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories working-directory: build run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz ~/rpmbuild/SOURCES/ - name: Build RPM working-directory: build run: rpmbuild -ba ../dist/unix/strawberry.spec build_fedora_36: name: Build Fedora 36 runs-on: ubuntu-latest container: image: fedora:36 env: RPM_BUILD_NCPUS: "2" steps: - uses: actions/checkout@v1.2.0 - name: Update packages run: yum update --assumeyes - name: Upgrade packages run: yum upgrade --assumeyes - name: Install Fedora dependencies run: > dnf install --assumeyes @development-tools redhat-lsb-core which git glibc gcc-c++ rpmdevtools make cmake pkgconfig glib man tar gettext openssh boost-devel dbus-devel protobuf-devel protobuf-compiler sqlite-devel alsa-lib-devel pulseaudio-libs-devel libnotify-devel gnutls-devel qt6-qtbase-devel qt6-qtbase-private-devel qt6-qttools-devel gstreamer1-devel gstreamer1-plugins-base-devel taglib-devel libcdio-devel libgpod-devel libmtp-devel libchromaprint-devel fftw-devel desktop-file-utils libappstream-glib hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories working-directory: build run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz ~/rpmbuild/SOURCES/ - name: Build RPM working-directory: build run: rpmbuild -ba ../dist/unix/strawberry.spec build_openmandriva_cooker: name: Build OpenMandriva Lx 4.2 runs-on: ubuntu-latest container: image: openmandriva/4.2 env: RPM_BUILD_NCPUS: "2" steps: - uses: actions/checkout@v1.2.0 - name: Update packages run: dnf update --assumeyes - name: Upgrade packages run: dnf upgrade --assumeyes - name: Install OpenMandriva dependencies run: > dnf install --assumeyes glibc gcc-c++ git gnutar make cmake glib gettext lsb-release rpmdevtools rpm-build glibc-devel boost-devel dbus-devel protobuf-devel protobuf-compiler sqlite-devel libasound-devel pulseaudio-devel gnutls-devel lib64GL-devel libgst-plugins-base1.0-devel taglib-devel chromaprint-devel fftw-devel libcdio-devel libgpod-devel libmtp-devel lib64Qt6Core-devel lib64Qt6Concurrent-devel lib64Qt6Network-devel lib64Qt6Sql-devel lib64Qt6DBus-devel lib64Qt6Gui-devel lib64Qt6Widgets-devel lib64Qt6Test-devel qt6-cmake qt6-qtbase-tools qt6-qttools desktop-file-utils appstream appstream-util hicolor-icon-theme - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: Create source tarball working-directory: build run: ../dist/scripts/maketarball.sh - name: Create RPM build sources directories working-directory: build run: mkdir -p ~/rpmbuild/SOURCES /usr/src/packages/SOURCES - name: Copy source tarball working-directory: build run: cp strawberry-*.tar.xz ~/rpmbuild/SOURCES/ - name: Build RPM working-directory: build run: rpmbuild -ba ../dist/unix/strawberry.spec build_debian_buster: name: Build Debian Buster runs-on: ubuntu-latest container: image: debian:buster steps: - uses: actions/checkout@v1.2.0 - name: Install Debian dependencies run: > apt-get update && apt-get install -y build-essential dh-make ssh git make cmake gcc pkg-config fakeroot gettext lsb-release libglib2.0-dev dpkg-dev libdbus-1-dev libboost-dev libprotobuf-dev protobuf-compiler libsqlite3-dev libgnutls28-dev libasound2-dev libpulse-dev libtag1-dev qtbase5-dev qtbase5-dev-tools qttools5-dev qttools5-dev-tools libqt5x11extras5-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-alsa gstreamer1.0-pulseaudio libchromaprint-dev libfftw3-dev libcdio-dev libmtp-dev libgpod-dev - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug - name: make deb shell: bash run: dpkg-buildpackage -b -d -uc -us -nc -j2 build_debian_bullseye: name: Build Debian Bullseye runs-on: ubuntu-latest container: image: debian:bullseye steps: - uses: actions/checkout@v1.2.0 - name: Install Debian dependencies run: > apt-get update && apt-get install -y build-essential dh-make ssh git make cmake gcc pkg-config fakeroot gettext lsb-release libglib2.0-dev dpkg-dev libdbus-1-dev libboost-dev libprotobuf-dev protobuf-compiler libsqlite3-dev libgnutls28-dev libasound2-dev libpulse-dev libtag1-dev qtbase5-dev qtbase5-dev-tools qttools5-dev qttools5-dev-tools libqt5x11extras5-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-alsa gstreamer1.0-pulseaudio libchromaprint-dev libfftw3-dev libcdio-dev libmtp-dev libgpod-dev - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: make deb shell: bash run: dpkg-buildpackage -b -d -uc -us -nc -j2 build_debian_bookworm: name: Build Debian Bookworm runs-on: ubuntu-latest container: image: debian:bookworm steps: - uses: actions/checkout@v1.2.0 - name: Install Debian dependencies run: > apt-get update && apt-get install -y build-essential dh-make ssh git make cmake gcc pkg-config fakeroot gettext lsb-release libglib2.0-dev dpkg-dev libdbus-1-dev libboost-dev libprotobuf-dev protobuf-compiler libsqlite3-dev libgnutls28-dev libasound2-dev libpulse-dev libtag1-dev qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-alsa gstreamer1.0-pulseaudio libchromaprint-dev libfftw3-dev libcdio-dev libmtp-dev libgpod-dev - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: make deb shell: bash run: dpkg-buildpackage -b -d -uc -us -nc -j2 build_ubuntu_bionic: name: Build Ubuntu Bionic runs-on: ubuntu-latest container: image: ubuntu:bionic steps: - uses: actions/checkout@v1.2.0 - name: Install Ubuntu dependencies env: DEBIAN_FRONTEND: noninteractive run: > apt-get update && apt-get install -y build-essential dh-make ssh git make cmake pkg-config gcc fakeroot wget curl gettext lsb-release dpkg-dev libglib2.0-dev libboost-dev libdbus-1-dev libprotobuf-dev protobuf-compiler libsqlite3-dev libgnutls28-dev libasound2-dev libpulse-dev libtag1-dev qtbase5-dev qtbase5-dev-tools qttools5-dev qttools5-dev-tools libqt5x11extras5-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev gstreamer1.0-alsa gstreamer1.0-pulseaudio libchromaprint-dev libfftw3-dev libcdio-dev libmtp-dev libgpod-dev - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: make deb shell: bash run: dpkg-buildpackage -b -d -uc -us -nc -j2 build_ubuntu_focal: name: Build Ubuntu Focal runs-on: ubuntu-latest container: image: ubuntu:focal steps: - uses: actions/checkout@v1.2.0 - name: Install Ubuntu dependencies env: DEBIAN_FRONTEND: noninteractive run: > apt-get update && apt-get install -y build-essential dh-make ssh git make cmake pkg-config gcc fakeroot wget curl gettext lsb-release dpkg-dev libglib2.0-dev libboost-dev libdbus-1-dev libprotobuf-dev protobuf-compiler libsqlite3-dev libgnutls28-dev libasound2-dev libpulse-dev libtag1-dev qtbase5-dev qtbase5-dev-tools qttools5-dev qttools5-dev-tools libqt5x11extras5-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev gstreamer1.0-alsa gstreamer1.0-pulseaudio libchromaprint-dev libfftw3-dev libcdio-dev libmtp-dev libgpod-dev - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: make deb shell: bash run: dpkg-buildpackage -b -d -uc -us -nc -j2 build_ubuntu_impish: name: Build Ubuntu Impish runs-on: ubuntu-latest container: image: ubuntu:impish steps: - uses: actions/checkout@v1.2.0 - name: Install Ubuntu dependencies env: DEBIAN_FRONTEND: noninteractive run: > apt-get update && apt-get install -y build-essential dh-make ssh git make cmake pkg-config gcc fakeroot wget curl gettext lsb-release dpkg-dev libglib2.0-dev libboost-dev libdbus-1-dev libprotobuf-dev protobuf-compiler libsqlite3-dev libgnutls28-dev libasound2-dev libpulse-dev libtag1-dev qtbase5-dev qtbase5-dev-tools qttools5-dev qttools5-dev-tools libqt5x11extras5-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev gstreamer1.0-alsa gstreamer1.0-pulseaudio libchromaprint-dev libfftw3-dev libcdio-dev libmtp-dev libgpod-dev - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: make deb shell: bash run: dpkg-buildpackage -b -d -uc -us -nc -j2 build_ubuntu_jammy: name: Build Ubuntu Jammy runs-on: ubuntu-latest container: image: ubuntu:jammy steps: - uses: actions/checkout@v1.2.0 - name: Install Ubuntu dependencies env: DEBIAN_FRONTEND: noninteractive run: > apt-get update && apt-get install -y build-essential dh-make ssh git make cmake pkg-config gcc fakeroot wget curl gettext lsb-release dpkg-dev libglib2.0-dev libboost-dev libdbus-1-dev libprotobuf-dev protobuf-compiler libsqlite3-dev libgnutls28-dev libasound2-dev libpulse-dev libtag1-dev qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools qt6-l10n-tools libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-good1.0-dev gstreamer1.0-alsa gstreamer1.0-pulseaudio libchromaprint-dev libfftw3-dev libcdio-dev libmtp-dev libgpod-dev - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Configure CMake shell: bash working-directory: build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DBUILD_WERROR=ON - name: make deb shell: bash run: dpkg-buildpackage -b -d -uc -us -nc -j2 build-macos: name: Build macOS runs-on: macos-10.15 steps: - uses: actions/checkout@v1.2.0 - name: Install macports run: | wget https://github.com/macports/macports-base/releases/download/v2.7.1/MacPorts-2.7.1-10.15-Catalina.pkg sudo installer -pkg ./MacPorts-2.7.1-10.15-Catalina.pkg -target / - name: Uninstall homebrew run: | curl -sLO https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh chmod +x ./uninstall.sh sudo ./uninstall.sh --force - name: Update macports run: sudo /opt/local/bin/port -v selfupdate - name: Install packages run: sudo /opt/local/bin/port -N -p install gsed wget cmake xz - name: Install create-dmg run: | git clone https://github.com/create-dmg/create-dmg.git cd create-dmg make install - name: Get macOS dependencies shell: bash run: | cd ../../ mkdir -p strawberry-macos-dependencies/strawberry-macos-dependencies cd strawberry-macos-dependencies/strawberry-macos-dependencies /opt/local/bin/wget https://github.com/strawberrymusicplayer/strawberry-macos-dependencies/releases/download/latest/strawberry-macos-catalina-dependencies.tar.xz tar -xf strawberry-macos-catalina-dependencies.tar.xz - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: | export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH" cmake -E make_directory build - name: Remove -Wundef shell: bash run: /opt/local/bin/gsed -i '/-Wundef/d' CMakeLists.txt - name: Configure CMake shell: bash env: MACOSX_DEPLOYMENT_TARGET: 10.15 CFLAGS: -I${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include CXXFLAGS: -I${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include LDFLAGS: -L${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib -Wl,-rpath,${{github.workspace}}/strawberry-macos-dependencies/usr/lib PKG_CONFIG_EXECUTABLE: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin/pkg-config PKG_CONFIG_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/pkgconfig working-directory: build run: | pwd export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH" cmake .. -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/cmake \ -DBUILD_WITH_QT6=ON \ -DBUILD_WERROR=OFF \ -DUSE_BUNDLE=ON \ -DBoost_INCLUDE_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \ -DProtobuf_INCLUDE_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \ -DProtobuf_INCLUDE_DIRS=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/include \ -DProtobuf_LIBRARY=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/libprotobuf.dylib \ -DProtobuf_PROTOC_EXECUTABLE=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin/protoc \ -DFFTW3_DIR=${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr - name: Build working-directory: build shell: bash run: | export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH" cmake --build . --config Release --parallel 4 - name: Fix macdeployqt and macdeploycheck working-directory: build shell: bash run: | install_name_tool -change "@rpath/QtCore.framework/Versions/A/QtCore" "/Users/runner/work/strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/QtCore.framework/Versions/A/QtCore" /Users/runner/work/strawberry/strawberry/build/3rdparty/macdeployqt/macdeployqt install_name_tool -change "@rpath/QtCore.framework/Versions/A/QtCore" "/Users/runner/work/strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/QtCore.framework/Versions/A/QtCore" /Users/runner/work/strawberry/strawberry/build/ext/macdeploycheck/macdeploycheck - name: Install working-directory: build shell: bash run: | export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH" make install - name: Deploy working-directory: build shell: bash env: GIO_EXTRA_MODULES: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gio/modules GST_PLUGIN_SCANNER: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/libexec/gstreamer-1.0/gst-plugin-scanner GST_PLUGIN_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gstreamer-1.0 run: | export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH" make deploy - name: Deploy check working-directory: build shell: bash run: | export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH" make deploycheck - name: Create DMG working-directory: build shell: bash env: GIO_EXTRA_MODULES: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gio/modules GST_PLUGIN_SCANNER: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/libexec/gstreamer-1.0/gst-plugin-scanner GST_PLUGIN_PATH: ${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/lib/gstreamer-1.0 run: | export PATH="${{github.workspace}}/../../strawberry-macos-dependencies/strawberry-macos-dependencies/usr/bin:/opt/local/bin:$PATH" make dmg - uses: actions/upload-artifact@v2 with: name: upload-macos path: build/strawberry-*.dmg build-windows-mingw: name: Build Windows MinGW runs-on: ubuntu-latest container: image: jonaski/strawberry-mxe-x86_64 steps: - uses: actions/checkout@v1.2.0 - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment shell: bash run: cmake -E make_directory build - name: Link MXE directory shell: bash run: ln -s /usr/src/strawberry-mxe ~/mxe-shared - name: Run CMake shell: bash env: PKG_CONFIG_PATH: /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/lib/pkgconfig working-directory: build run: > cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-x86_64-w64-mingw32-shared.cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6 -DBUILD_WITH_QT6=ON -DBUILD_WERROR=OFF -DARCH=x86_64 -DENABLE_WIN32_CONSOLE=OFF -DENABLE_DBUS=OFF -DENABLE_LIBGPOD=OFF -DENABLE_LIBMTP=OFF -DProtobuf_PROTOC_EXECUTABLE=/usr/src/strawberry-mxe/usr/x86_64-pc-linux-gnu/bin/protoc - name: Run Make working-directory: build run: cmake --build . --config Release --parallel $(nproc) - name: Create directories working-directory: build run: mkdir -p gio-modules platforms sqldrivers tls imageformats styles gstreamer-plugins nsisplugins - name: Copy GIO modules working-directory: build run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/lib/gio/modules/{libgiognutls.dll,libgioopenssl.dll} ${GITHUB_WORKSPACE}/build/gio-modules/ - name: Copy Qt platform plugins working-directory: build run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/platforms/qwindows.dll ${GITHUB_WORKSPACE}/build/platforms/ - name: Copy Qt styles working-directory: build run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/styles/qwindowsvistastyle.dll ${GITHUB_WORKSPACE}/build/styles/ - name: Copy Qt TLS plugins working-directory: build run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/tls/{qschannelbackend.dll,qopensslbackend.dll} ${GITHUB_WORKSPACE}/build/tls/ - name: Copy Qt SQL drivers working-directory: build run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/sqldrivers/qsqlite.dll ${GITHUB_WORKSPACE}/build/sqldrivers/ - name: Copy Qt imageformats working-directory: build run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt6/plugins/imageformats/{qgif.dll,qico.dll,qjpeg.dll} ${GITHUB_WORKSPACE}/build/imageformats/ - name: Copy gstreamer plugins working-directory: build run: > cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaes.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaiff.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstapetag.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstapp.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstasf.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstasfmux.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudioconvert.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiofx.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiomixer.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudioparsers.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiorate.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudioresample.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstaudiotestsrc.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstautodetect.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstbs2b.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstcdio.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstcoreelements.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstdash.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstdirectsound.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstequalizer.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstfaac.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstfaad.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstfdkaac.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstflac.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstgio.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsthls.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsticydemux.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstid3demux.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstisomp4.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstlame.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstlibav.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstmpg123.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstmusepack.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstogg.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstopenmpt.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstopus.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstopusparse.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstpbtypes.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstplayback.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstremovesilence.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstreplaygain.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstrtp.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstrtsp.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstsoup.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstspectrum.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstspeex.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsttaglib.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsttcp.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgsttypefindfunctions.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstudp.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstvolume.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstvorbis.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstwasapi.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstwavpack.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstwavparse.dll /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/gstreamer-1.0/libgstxingmux.dll ${GITHUB_WORKSPACE}/build/gstreamer-plugins/ - name: Copy extra binaries working-directory: build run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/bin/{sqlite3.exe,gst-launch-1.0.exe,gst-discoverer-1.0.exe,libsoup-2.4-1.dll,libnghttp2.dll} . - name: Copy dependencies working-directory: build run: > /usr/src/strawberry-mxe/tools/copydlldeps.sh -c -d . -F . -F ./platforms -F ./styles -F ./imageformats -F ./tls -F ./sqldrivers -F ./gstreamer-plugins -R /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared - name: Strip binaries working-directory: build run: find . -type f \( -iname \*.dll -o -iname \*.exe \) -exec /usr/src/strawberry-mxe/usr/bin/x86_64-w64-mingw32.shared-strip {} \; - name: Copy nsis files working-directory: build run: cp ${GITHUB_WORKSPACE}/dist/windows/*.nsi ${GITHUB_WORKSPACE}/dist/windows/*.nsh ${GITHUB_WORKSPACE}/dist/windows/*.ico . - name: Copy COPYING license file working-directory: build run: cp ${GITHUB_WORKSPACE}/COPYING . - name: Build Windows installer working-directory: build run: makensis strawberry.nsi build-windows-msvc-release: name: Build Windows MSVC Release runs-on: windows-2019 steps: - uses: ilammy/msvc-dev-cmd@v1 with: arch: x86_64 toolset: 14.29 - uses: actions/checkout@v1.2.0 - name: Delete conflicting files shell: bash run: | rm -f /c/programdata/chocolatey/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cc1.exe,cc1plus.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,gdb.exe,gfortran.exe,ld.bfd.exe,ld.exe,ld.gold.exe,nm.exe,ranlib.exe,readelf.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.1.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe} rm -f /c/strawberry/c/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,ld.exe,nm.exe,ranlib.exe,readelf.exe,widl.exe,windmc.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.3.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe} - name: Download Windows MSVC dependencies uses: suisei-cn/actions-download-file@v1 with: url: "Windows MSVC dependencies [this](https://github.com/strawberrymusicplayer/strawberry-msvc-dependencies/releases/download/latest/strawberry-msvc-dependencies-release.tar.xz)!" target: downloads/ auto-match: true - name: Download LockedList plugin for NSIS uses: suisei-cn/actions-download-file@v1 with: url: "LockedList [this](https://nsis.sourceforge.io/mediawiki/images/d/d3/LockedList.zip)!" target: downloads/ auto-match: true - name: Extract NSIS LockedList plugin run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/LockedList.zip" - name: Download Registry plugin for NSIS uses: suisei-cn/actions-download-file@v1 with: url: "Registry [this](https://nsis.sourceforge.io/mediawiki/images/4/47/Registry.zip)!" target: downloads/ auto-match: true - name: Extract NSIS Registry plugin run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Registry.zip" - name: Download Inetc plugin for NSIS uses: suisei-cn/actions-download-file@v1 with: url: "Inetc [this](https://nsis.sourceforge.io/mediawiki/images/c/c9/Inetc.zip)!" target: downloads/ auto-match: true - name: Extract NSIS Inetc plugin run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Inetc.zip" - name: Install NSIS plugins run: | copy "${{github.workspace}}/NSIS_Plugins/Plugins/LockedList64.dll" "C:/Program Files (x86)/NSIS/Plugins/" copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/LockedList.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/" copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/" copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/" copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/INetC.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/" - name: Extract Windows MSVC dependencies shell: bash run: | tar -xf /d/a/strawberry/strawberry/downloads/strawberry-msvc-dependencies-release.tar.xz mv c/msvc_x86_64 /c/ - name: Update PATH run: echo "c:\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment run: cmake -E make_directory build - name: Run CMake working-directory: build run: > cmake .. -DCMAKE_BUILD_TYPE="Release" -DCMAKE_PREFIX_PATH="c:/msvc_x86_64/lib/cmake" -DBUILD_WITH_QT6=ON -DBUILD_WERROR=OFF -DARCH=x86_64 -DENABLE_WIN32_CONSOLE=OFF -DENABLE_DBUS=OFF -DENABLE_LIBGPOD=OFF -DENABLE_LIBMTP=OFF -DUSE_TAGLIB=ON -DPKG_CONFIG_EXECUTABLE="c:/msvc_x86_64/bin/pkg-config.exe" - name: Run Make env: CL: "/MP" working-directory: build run: cmake --build . --config Release --parallel 4 - name: list files working-directory: build run: dir - name: Copy executables working-directory: build run: copy release\*.exe . - name: Copy extra binaries working-directory: build run: | copy c:\msvc_x86_64\bin\libssl-3-x64.dll copy c:\msvc_x86_64\bin\libcrypto-3-x64.dll copy c:\msvc_x86_64\bin\soup-2.4-1.dll copy c:\msvc_x86_64\bin\gst-launch-1.0.exe copy c:\msvc_x86_64\bin\gst-discoverer-1.0.exe copy c:\msvc_x86_64\bin\sqlite3.exe - name: Create directories working-directory: build run: | mkdir gio-modules mkdir platforms mkdir styles mkdir tls mkdir sqldrivers mkdir imageformats mkdir gstreamer-plugins mkdir nsisplugins - name: Copy GIO modules working-directory: build run: copy c:\msvc_x86_64\lib\gio\modules\*.dll .\gio-modules\ - name: Copy Qt platform plugins working-directory: build run: copy c:\msvc_x86_64\plugins\platforms\qwindows.dll .\platforms\ - name: Copy Qt styles working-directory: build run: copy c:\msvc_x86_64\plugins\styles\qwindowsvistastyle.dll .\styles\ - name: Copy Qt TLS plugins working-directory: build run: copy c:\msvc_x86_64\plugins\tls\*.dll .\tls\ - name: Copy Qt SQL drivers working-directory: build run: copy c:\msvc_x86_64\plugins\sqldrivers\qsqlite.dll .\sqldrivers\ - name: Copy Qt imageformats plugins working-directory: build run: copy c:\msvc_x86_64\plugins\imageformats\*.dll .\imageformats\ - name: Copy gstreamer plugins working-directory: build run: | copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaiff.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapetag.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasf.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasfmux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioconvert.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiofx.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiomixer.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioparsers.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiorate.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioresample.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiotestsrc.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstautodetect.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstbs2b.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstcoreelements.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdash.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdirectsound.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstequalizer.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaac.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaad.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfdkaac.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstflac.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstgio.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsthls.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsticydemux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstid3demux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstisomp4.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlame.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmpg123.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmusepack.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstogg.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopenmpt.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopus.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopusparse.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstplayback.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstremovesilence.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstreplaygain.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtsp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspeex.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstsoup.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspectrum.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttcp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttypefindfunctions.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstudp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvolume.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvorbis.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi2.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavparse.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstxingmux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlibav.dll .\gstreamer-plugins\ - name: Download copydlldeps.sh shell: bash working-directory: build run: curl -O -L https://raw.githubusercontent.com/strawberrymusicplayer/strawberry-mxe/master/tools/copydlldeps.sh - name: Copy dependencies shell: bash working-directory: build run: > ./copydlldeps.sh -c -d . -F . -F ./platforms -F ./styles -F ./tls -F ./sqldrivers -F ./imageformats -F ./gio-modules -F ./gstreamer-plugins -R /c/msvc_x86_64/bin - name: Copy nsis files working-directory: build run: | copy ..\dist\windows\*.nsi . copy ..\dist\windows\*.nsh . copy ..\dist\windows\*.ico . - name: Copy COPYING license file working-directory: build run: copy ..\COPYING . - name: list files working-directory: build run: dir - name: Create nsis installer working-directory: build run: makensis strawberry.nsi - uses: actions/upload-artifact@v2 with: name: upload-windows path: build/StrawberrySetup*.exe build-windows-msvc-debug: name: Build Windows MSVC Debug runs-on: windows-2019 steps: - uses: ilammy/msvc-dev-cmd@v1 with: arch: x86_64 toolset: 14.29 - uses: actions/checkout@v1.2.0 - name: Delete conflicting files shell: bash run: | rm -f /c/programdata/chocolatey/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cc1.exe,cc1plus.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,gdb.exe,gfortran.exe,ld.bfd.exe,ld.exe,ld.gold.exe,nm.exe,ranlib.exe,readelf.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.1.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe} rm -f /c/strawberry/c/bin/{addr2line.exe,ar.exe,as.exe,c++.exe,c++filt.exe,cpp.exe,g++.exe,gcc-ar.exe,gcc-nm.exe,gcc-ranlib.exe,gcc.exe,ld.exe,nm.exe,ranlib.exe,readelf.exe,widl.exe,windmc.exe,windres.exe,x86_64-w64-mingw32-c++.exe,x86_64-w64-mingw32-g++.exe,x86_64-w64-mingw32-gcc-8.3.0.exe,x86_64-w64-mingw32-gcc-ar.exe,x86_64-w64-mingw32-gcc-nm.exe,x86_64-w64-mingw32-gcc-ranlib.exe,x86_64-w64-mingw32-gcc.exe,x86_64-w64-mingw32-gfortran.exe} - name: Download Windows MSVC dependencies uses: suisei-cn/actions-download-file@v1 with: url: "Windows MSVC dependencies [this](https://github.com/strawberrymusicplayer/strawberry-msvc-dependencies/releases/download/latest/strawberry-msvc-dependencies-debug.tar.xz)!" target: downloads/ auto-match: true - name: Download LockedList plugin for NSIS uses: suisei-cn/actions-download-file@v1 with: url: "LockedList [this](https://nsis.sourceforge.io/mediawiki/images/d/d3/LockedList.zip)!" target: downloads/ auto-match: true - name: Extract NSIS LockedList plugin run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/LockedList.zip" - name: Download Registry plugin for NSIS uses: suisei-cn/actions-download-file@v1 with: url: "Registry [this](https://nsis.sourceforge.io/mediawiki/images/4/47/Registry.zip)!" target: downloads/ auto-match: true - name: Extract NSIS Registry plugin run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Registry.zip" - name: Download Inetc plugin for NSIS uses: suisei-cn/actions-download-file@v1 with: url: "Inetc [this](https://nsis.sourceforge.io/mediawiki/images/c/c9/Inetc.zip)!" target: downloads/ auto-match: true - name: Extract NSIS Inetc plugin run: 7z x -o"${{github.workspace}}/NSIS_Plugins" "${{github.workspace}}/downloads/Inetc.zip" - name: Install NSIS plugins run: | copy "${{github.workspace}}/NSIS_Plugins/Plugins/LockedList64.dll" "C:/Program Files (x86)/NSIS/Plugins/" copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/LockedList.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/" copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/" copy "${{github.workspace}}/NSIS_Plugins/Desktop/Plugin/registry.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/" copy "${{github.workspace}}/NSIS_Plugins/Plugins/x86-unicode/INetC.dll" "C:/Program Files (x86)/NSIS/Plugins/x86-unicode/" - name: Extract Windows MSVC dependencies shell: bash run: | tar -xf /d/a/strawberry/strawberry//downloads/strawberry-msvc-dependencies-debug.tar.xz mv c/msvc_x86_64 /c/ - name: Update PATH run: echo "c:\msvc_x86_64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - name: Add safe git directory shell: bash run: git config --global --add safe.directory /__w/strawberry/strawberry - name: Create Build Environment run: cmake -E make_directory build - name: Run CMake working-directory: build run: > cmake .. -DCMAKE_BUILD_TYPE="Debug" -DCMAKE_PREFIX_PATH="c:/msvc_x86_64/lib/cmake" -DBUILD_WITH_QT6=ON -DBUILD_WERROR=OFF -DARCH=x86_64 -DENABLE_WIN32_CONSOLE=ON -DENABLE_DBUS=OFF -DENABLE_LIBGPOD=OFF -DENABLE_LIBMTP=OFF -DUSE_TAGLIB=ON -DPKG_CONFIG_EXECUTABLE="c:/msvc_x86_64/bin/pkg-config.exe" - name: Run Make env: CL: "/MP" working-directory: build run: cmake --build . --config Debug --parallel 4 - name: list files working-directory: build run: dir - name: Copy executables working-directory: build run: copy debug\*.exe . - name: Copy extra binaries working-directory: build run: | copy c:\msvc_x86_64\bin\libssl-3-x64.dll copy c:\msvc_x86_64\bin\libcrypto-3-x64.dll copy c:\msvc_x86_64\bin\soup-2.4-1.dll copy c:\msvc_x86_64\bin\gst-launch-1.0.exe copy c:\msvc_x86_64\bin\gst-discoverer-1.0.exe copy c:\msvc_x86_64\bin\sqlite3.exe - name: Create directories working-directory: build run: | mkdir gio-modules mkdir platforms mkdir styles mkdir tls mkdir sqldrivers mkdir imageformats mkdir gstreamer-plugins mkdir nsisplugins - name: Copy GIO modules working-directory: build run: copy c:\msvc_x86_64\lib\gio\modules\*.dll .\gio-modules\ - name: Copy Qt platform plugins working-directory: build run: copy c:\msvc_x86_64\plugins\platforms\qwindowsd.dll .\platforms\ - name: Copy Qt styles working-directory: build run: copy c:\msvc_x86_64\plugins\styles\qwindowsvistastyled.dll .\styles\ - name: Copy Qt TLS plugins working-directory: build run: copy c:\msvc_x86_64\plugins\tls\*.dll .\tls\ - name: Copy Qt SQL drivers working-directory: build run: copy c:\msvc_x86_64\plugins\sqldrivers\qsqlited.dll .\sqldrivers\ - name: Copy Qt imageformats plugins working-directory: build run: copy c:\msvc_x86_64\plugins\imageformats\*.dll .\imageformats\ - name: Copy gstreamer plugins working-directory: build run: | copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaiff.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapetag.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstapp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasf.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstasfmux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioconvert.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiofx.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiomixer.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioparsers.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiorate.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudioresample.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstaudiotestsrc.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstautodetect.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstbs2b.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstcoreelements.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdash.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstdirectsound.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstequalizer.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaac.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfaad.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstfdkaac.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstflac.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstgio.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsthls.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsticydemux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstid3demux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstisomp4.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlame.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmpg123.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstmusepack.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstogg.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopenmpt.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopus.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstopusparse.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstplayback.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstremovesilence.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstreplaygain.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstrtsp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspeex.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstsoup.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstspectrum.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttcp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gsttypefindfunctions.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstudp.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvolume.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstvorbis.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwasapi2.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavpack.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstwavparse.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstxingmux.dll .\gstreamer-plugins\ copy c:\msvc_x86_64\lib\gstreamer-1.0\gstlibav.dll .\gstreamer-plugins\ - name: Download copydlldeps.sh shell: bash working-directory: build run: curl -O -L https://raw.githubusercontent.com/strawberrymusicplayer/strawberry-mxe/master/tools/copydlldeps.sh - name: Copy dependencies shell: bash working-directory: build run: > ./copydlldeps.sh -c -d . -F . -F ./platforms -F ./styles -F ./tls -F ./sqldrivers -F ./imageformats -F ./gio-modules -F ./gstreamer-plugins -R /c/msvc_x86_64/bin - name: Copy nsis files working-directory: build run: | copy ..\dist\windows\*.nsi . copy ..\dist\windows\*.nsh . copy ..\dist\windows\*.ico . - name: Copy COPYING license file working-directory: build run: copy ..\COPYING . - name: list files working-directory: build run: dir - name: Create nsis installer working-directory: build run: makensis strawberry.nsi - uses: actions/upload-artifact@v2 with: name: upload-windows path: build/StrawberrySetup*.exe upload-macos: name: Upload macOS DMG runs-on: ubuntu-latest if: github.ref == 'refs/heads/master' needs: - build-macos steps: - uses: actions/checkout@v1.2.0 - uses: actions/download-artifact@v2 with: path: uploads - name: Install SSH keys uses: shimataro/ssh-key-action@v2 with: known_hosts: ${{ secrets.KNOWN_HOSTS2 }} key: ${{ secrets.SSH_KEY }} - name: rsync run: | set -x for i in $(find uploads -type f -name 'strawberry-*.dmg'); do rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/macos/ done upload-windows: name: Upload Windows Setup runs-on: ubuntu-latest if: github.ref == 'refs/heads/master' needs: - build-windows-msvc-release - build-windows-msvc-debug steps: - uses: actions/checkout@v1.2.0 - uses: actions/download-artifact@v2 with: path: uploads - name: Install SSH keys uses: shimataro/ssh-key-action@v2 with: known_hosts: ${{ secrets.KNOWN_HOSTS2 }} key: ${{ secrets.SSH_KEY }} - name: rsync run: | set -x for i in $(find uploads -type f -name 'StrawberrySetup*.exe'); do rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/windows/ done build-freebsd: name: Build FreeBSD runs-on: macos-10.15 steps: - uses: actions/checkout@v1.2.0 - name: Build FreeBSD id: build-freebsd uses: vmactions/freebsd-vm@v0.1.5 with: usesh: true mem: 4096 prepare: pkg install -y git cmake pkgconf gettext-tools boost-libs glib gnutls qt5-core qt5-concurrent qt5-network qt5-sql qt5-dbus qt5-gui qt5-widgets qt5-buildtools qt5-linguisttools qt5-qmake qt5-sqldrivers-sqlite3 qt5-testlib sqlite gstreamer1 gstreamer1-plugins chromaprint protobuf protobuf-c taglib libcdio libmtp gdk-pixbuf2 libgpod fftw3 googletest iconv run: | git config --global --add safe.directory /__w/strawberry/strawberry cmake -E make_directory build cd build cmake .. -DCMAKE_BUILD_TYPE=Debug cmake --build . --config Debug --parallel 4 cd .. rm -rf build