diff --git a/.travis.yml b/.travis.yml index 13e3617..98a03bf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,10 @@ jobs: dist: xenial os: linux env: BUILD_DESTINATION=snapcraft + - language: minimal + dist: focal + os: linux + env: BUILD_DESTINATION=deb - language: python os: linux dist: xenial @@ -21,12 +25,16 @@ script: - if [ "$TRAVIS_OS_NAME" == "osx" ]; then python3 buildPy2app.py py2app ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "snapcraft" ]; then sudo snapcraft cleanbuild ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "appimage" ]; then travis/appimage-script.sh ; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "deb" ]; then travis/deb-script.sh ; fi install: - if [ "$TRAVIS_OS_NAME" == "osx" ]; then travis/macos-install.sh ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "snapcraft" ]; then travis/snapcraft-install.sh ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "appimage" ]; then sudo apt-get install libxkbcommon-x11-0 ; fi +after_success: +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "deb" ]; then travis/deb-installation-test.sh ; fi + before_deploy: - ls -al - export VER="$(cat syncplay/__init__.py | awk '/version/ {gsub("\047", "", $3); print $NF}')" @@ -35,6 +43,7 @@ before_deploy: - if [ "$TRAVIS_OS_NAME" == "osx" ]; then travis/macos-deploy.sh ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "snapcraft" ]; then mv syncplay_build_amd64.snap dist_bintray/syncplay_${VER}_amd64.snap ; fi - if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "appimage" ]; then travis/appimage-deploy.sh ; fi +- if [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$BUILD_DESTINATION" == "deb" ]; then mv /tmp/syncplay.deb dist_bintray/syncplay_${VER}.deb ; fi deploy: skip_cleanup: true diff --git a/travis/deb-installation-test.sh b/travis/deb-installation-test.sh new file mode 100755 index 0000000..b438b56 --- /dev/null +++ b/travis/deb-installation-test.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -x +set -e + +sudo apt install /tmp/syncplay.deb -y +syncplay --no-gui +sudo apt remove syncplay diff --git a/travis/deb-script.sh b/travis/deb-script.sh new file mode 100755 index 0000000..8853d82 --- /dev/null +++ b/travis/deb-script.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +set -x +set -e + +mkdir -p /tmp/syncplay/DEBIAN + +echo "Package: syncplay +Version: "$(sed -n -e "s/^.*version = //p" syncplay/__init__.py | sed "s/'//g")""$(git describe --exact-match --tags HEAD &>/dev/null && echo -git-$(date -u +%y%m%d%H%M))" +Architecture: all +Maintainer: +Depends: python3 (>= 3.4), python3-pyside2.qtwidgets, python3-pyside2.qtcore, python3-twisted (>= 16.4.0), python3-certifi, mpv (>= 0.23) | vlc (>= 2.2.1) +Homepage: https://syncplay.pl +Section: web +Priority: optional +Description: Solution to synchronize video playback across multiple instances of mpv, VLC, MPC-HC and MPC-BE over the Internet. + Syncplay synchronises the position and play state of multiple media players so that the viewers can watch the same thing at the same time. This means that when one person pauses/unpauses playback or seeks (jumps position) within their media player then this will be replicated across all media players connected to the same server and in the same 'room' (viewing session). When a new person joins they will also be synchronised. Syncplay also includes text-based chat so you can discuss a video as you watch it (or you could use third-party Voice over IP software to talk over a video)." \ +> /tmp/syncplay/DEBIAN/control +echo "#!/bin/sh +py3clean -p syncplay +" +> /tmp/syncplay/DEBIAN/prerm +chmod 555 /tmp/syncplay/DEBIAN/prerm + +make install DESTDIR=/tmp/syncplay +dpkg -b /tmp/syncplay/ +