1230 lines
38 KiB
YAML
1230 lines
38 KiB
YAML
name: C/C++ CI
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
build_source:
|
|
name: Create source tarball
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/leap:15.1
|
|
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
|
|
libQt5Core-devel
|
|
libQt5Gui-devel
|
|
libQt5Widgets-devel
|
|
libQt5Concurrent-devel
|
|
libQt5Network-devel
|
|
libQt5Sql-devel
|
|
libQt5DBus-devel
|
|
libQt5Test-devel
|
|
libqt5-qtx11extras-devel
|
|
libqt5-qtbase-common-devel
|
|
libQt5Sql5-sqlite
|
|
libqt5-linguist-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- 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=$BUILD_TYPE
|
|
- name: Create source tarball
|
|
working-directory: build
|
|
run: ../dist/scripts/maketarball.sh
|
|
|
|
|
|
build_opensuse_lp151:
|
|
name: Build openSUSE Leap 15.1
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/leap:15.1
|
|
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
|
|
libQt5Core-devel
|
|
libQt5Gui-devel
|
|
libQt5Widgets-devel
|
|
libQt5Concurrent-devel
|
|
libQt5Network-devel
|
|
libQt5Sql-devel
|
|
libQt5DBus-devel
|
|
libQt5Test-devel
|
|
libqt5-qtx11extras-devel
|
|
libqt5-qtbase-common-devel
|
|
libQt5Sql5-sqlite
|
|
libqt5-linguist-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- 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=$BUILD_TYPE
|
|
- 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_lp152:
|
|
name: Build openSUSE Leap 15.2
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/leap:15.2
|
|
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
|
|
libQt5Core-devel
|
|
libQt5Gui-devel
|
|
libQt5Widgets-devel
|
|
libQt5Concurrent-devel
|
|
libQt5Network-devel
|
|
libQt5Sql-devel
|
|
libQt5DBus-devel
|
|
libQt5Test-devel
|
|
libqt5-qtx11extras-devel
|
|
libqt5-qtbase-common-devel
|
|
libQt5Sql5-sqlite
|
|
libqt5-linguist-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- 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=$BUILD_TYPE
|
|
- 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:
|
|
name: Build openSUSE Tumbleweed
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/tumbleweed
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- 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
|
|
libQt5Core-devel
|
|
libQt5Gui-devel
|
|
libQt5Widgets-devel
|
|
libQt5Concurrent-devel
|
|
libQt5Network-devel
|
|
libQt5Sql-devel
|
|
libQt5DBus-devel
|
|
libQt5Test-devel
|
|
libqt5-qtx11extras-devel
|
|
libqt5-qtbase-common-devel
|
|
libQt5Sql5-sqlite
|
|
libqt5-linguist-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- 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=$BUILD_TYPE
|
|
- 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_qt6:
|
|
name: Build openSUSE Qt 6
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: opensuse/tumbleweed
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Add Qt 6 repository
|
|
run: zypper -n ar -c -f -n 'repo-qt6' https://download.opensuse.org/repositories/home:/jonaski:/qt6/openSUSE_Tumbleweed/ repo-qt6
|
|
- 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
|
|
qt6-core-devel
|
|
qt6-gui-devel
|
|
qt6-widgets-devel
|
|
qt6-concurrent-devel
|
|
qt6-network-devel
|
|
qt6-sql-devel
|
|
qt6-dbus-devel
|
|
qt6-test-devel
|
|
qt6-x11extras-devel
|
|
qt6-base-common-devel
|
|
qt6-sql-sqlite
|
|
qt6-qt5compat-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libchromaprint-devel
|
|
desktop-file-utils
|
|
update-desktop-files
|
|
appstream-glib
|
|
hicolor-icon-theme
|
|
- 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=$BUILD_TYPE -DWITH_QT6=ON
|
|
- name: Build
|
|
working-directory: build
|
|
run: cmake --build . --config $BUILD_TYPE
|
|
|
|
|
|
build_fedora_32:
|
|
name: Build Fedora 32
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: fedora:32
|
|
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
|
|
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
|
|
qt5-devel
|
|
qt5-qtbase-devel
|
|
qt5-qtx11extras-devel
|
|
qt5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- 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_33:
|
|
name: Build Fedora 33
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: fedora:33
|
|
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
|
|
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
|
|
qt5-qtbase-devel
|
|
qt5-qtx11extras-devel
|
|
qt5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- 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_34:
|
|
name: Build Fedora 34
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: fedora:34
|
|
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
|
|
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
|
|
qt5-qtbase-devel
|
|
qt5-qtx11extras-devel
|
|
qt5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- 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_centos_8:
|
|
name: Build CentOS 8
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: centos:8
|
|
env:
|
|
RPM_BUILD_NCPUS: "2"
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
|
|
- name: Install epel-release
|
|
run: dnf install -y epel-release
|
|
- name: Install config-manager
|
|
run: dnf install -y 'dnf-command(config-manager)'
|
|
- name: Enable PowerTools
|
|
run: dnf config-manager --set-enabled PowerTools
|
|
- name: DNF Clean All
|
|
run: dnf clean all
|
|
- name: DNF Update
|
|
run: dnf update -y
|
|
|
|
- name: Install CentOS dependencies
|
|
run: >
|
|
dnf install -y
|
|
glibc
|
|
gcc-c++
|
|
make
|
|
libtool
|
|
cmake3
|
|
rpmdevtools
|
|
redhat-lsb-core
|
|
git
|
|
wget
|
|
curl
|
|
man
|
|
tar
|
|
gettext
|
|
boost-devel
|
|
fuse-devel
|
|
dbus-devel
|
|
libnotify-devel
|
|
gnutls-devel
|
|
sqlite-devel
|
|
protobuf-devel
|
|
protobuf-compiler
|
|
alsa-lib-devel
|
|
pulseaudio-libs-devel
|
|
qt5-devel
|
|
qt5-qtbase-devel
|
|
qt5-qtx11extras-devel
|
|
qt5-qttools-devel
|
|
fftw-devel
|
|
libchromaprint-devel
|
|
libcdio-devel
|
|
libgpod-devel
|
|
libmtp-devel
|
|
libjpeg-devel
|
|
cairo-devel
|
|
dbus-x11
|
|
xorg-x11-server-Xvfb
|
|
xorg-x11-xauth
|
|
vim-common
|
|
desktop-file-utils
|
|
libappstream-glib
|
|
appstream-data
|
|
hicolor-icon-theme
|
|
gstreamer1-devel
|
|
gstreamer1-plugins-base-devel
|
|
|
|
- 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=$BUILD_TYPE
|
|
- 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
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
libqt5x11extras5-dev
|
|
qttools5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- 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
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
libqt5x11extras5-dev
|
|
qttools5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- 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
|
|
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
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
libqt5x11extras5-dev
|
|
qttools5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- 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
|
|
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
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
libqt5x11extras5-dev
|
|
qttools5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build_ubuntu_groovy:
|
|
name: Build Ubuntu Groovy
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: ubuntu:groovy
|
|
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
|
|
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
|
|
qtbase5-dev
|
|
qtbase5-dev-tools
|
|
qtbase5-private-dev
|
|
libqt5x11extras5-dev
|
|
qttools5-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: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE
|
|
- name: make deb
|
|
shell: bash
|
|
run: dpkg-buildpackage -b -d -uc -us -nc -j2
|
|
|
|
|
|
build-macos:
|
|
name: Build macOS
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
- name: Update
|
|
run: brew update
|
|
- name: Upgrade
|
|
run: brew upgrade
|
|
- name: Install packages
|
|
run: >
|
|
brew install
|
|
glib
|
|
pkgconfig
|
|
boost
|
|
libffi
|
|
protobuf
|
|
protobuf-c
|
|
qt
|
|
gettext
|
|
gnutls
|
|
fftw
|
|
sqlite
|
|
chromaprint
|
|
gstreamer
|
|
gst-plugins-base
|
|
gst-plugins-good
|
|
gst-plugins-bad
|
|
gst-plugins-ugly
|
|
gst-libav
|
|
libcdio
|
|
libmtp
|
|
create-dmg
|
|
taglib
|
|
|
|
- name: Delete conflicting taglib system headers
|
|
shell: bash
|
|
run: rm -rf /usr/local/include/taglib
|
|
|
|
- name: Create Build Environment
|
|
shell: bash
|
|
run: cmake -E make_directory build
|
|
- name: Configure CMake
|
|
shell: bash
|
|
env:
|
|
PKG_CONFIG_PATH: /usr/local/lib/pkgconfig
|
|
Qt5_DIR: /usr/local/opt/qt5/lib/cmake
|
|
Qt5LinguistTools_DIR: /usr/local/opt/qt5/lib/cmake/Qt5LinguistTools
|
|
GST_SCANNER_PATH: /usr/local/opt/gstreamer/libexec/gstreamer-1.0/gst-plugin-scanner
|
|
GST_PLUGIN_PATH: /usr/local/lib/gstreamer-1.0
|
|
working-directory: build
|
|
run: cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DUSE_BUNDLE=ON
|
|
- name: Build
|
|
working-directory: build
|
|
shell: bash
|
|
run: cmake --build . --config $BUILD_TYPE
|
|
- name: Install
|
|
working-directory: build
|
|
shell: bash
|
|
run: make install
|
|
- name: Create DMG
|
|
working-directory: build
|
|
shell: bash
|
|
run: make dmg
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: upload-macos
|
|
path: build/strawberry-*.dmg
|
|
|
|
|
|
build-windows:
|
|
name: Build Windows
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: jonaski/strawberry-mxe
|
|
steps:
|
|
- uses: actions/checkout@v1.2.0
|
|
|
|
- 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
|
|
-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: make -j2
|
|
|
|
- name: Create directories
|
|
working-directory: build
|
|
run: mkdir -p gio-modules platforms sqldrivers 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 ${GITHUB_WORKSPACE}/build/gio-modules/
|
|
|
|
- name: Copy Qt platforms plugins
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/platforms/qwindows.dll ${GITHUB_WORKSPACE}/build/platforms/
|
|
|
|
- name: Copy Qt styles plugins
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/styles/qwindowsvistastyle.dll ${GITHUB_WORKSPACE}/build/styles/
|
|
|
|
- name: Copy Qt SQL drivers plugins
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/sqldrivers/qsqlite.dll ${GITHUB_WORKSPACE}/build/sqldrivers/
|
|
|
|
- name: Copy Qt imageformats plugins
|
|
working-directory: build
|
|
run: cp /usr/src/strawberry-mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/imageformats/*.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/libgstapp.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/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/libgstplayback.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/libgstspectrum.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/libgstreplaygain.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/libgstgio.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/libgstwasapi.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/libgstapetag.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/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/libgstudp.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/libgstcdio.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/libgstflac.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/libgstwavpack.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/libgstvorbis.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/libgstspeex.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/libgstaiff.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/libgstisomp4.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/libgstlibav.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,killproc.exe,liborc-0.4-0.dll} .
|
|
|
|
- name: Copy dependencies
|
|
working-directory: build
|
|
run: >
|
|
/usr/src/strawberry-mxe/tools/copydlldeps.sh
|
|
-c
|
|
-d .
|
|
-F .
|
|
-F ./platforms
|
|
-F ./styles
|
|
-F ./sqldrivers
|
|
-F ./imageformats
|
|
-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: Build Windows installer
|
|
working-directory: build
|
|
run: makensis strawberry.nsi
|
|
|
|
|
|
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 '*.dmg'); do
|
|
rsync -e "ssh -p 50220 -o StrictHostKeyChecking=no" -va $i travis@echoes.jkvinge.net:/home/travis/builds/macos/catalina/
|
|
done
|