diff --git a/.github/workflows/autobuild_deb.yml b/.github/workflows/autobuild_deb.yml new file mode 100644 index 0000000000..3ca5b4d9d1 --- /dev/null +++ b/.github/workflows/autobuild_deb.yml @@ -0,0 +1,23 @@ +name: "Autobuild deb" + +on: + push: + tags: + - "r*" +jobs: + pre-release: + name: "Release" + runs-on: "ubuntu-18.04" + steps: + - name: Checkout Project + uses: actions/checkout@v1 + - name: "Build package" + run: cd distributions; sudo ./build-debian-package-auto.sh + - uses: "marvinpinto/action-automatic-releases@latest" + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "latest" + prerelease: false + title: "Automatic Build" + files: | + *.deb diff --git a/distributions/autobuilddeb/control b/distributions/autobuilddeb/control new file mode 100644 index 0000000000..ea6be31f1f --- /dev/null +++ b/distributions/autobuilddeb/control @@ -0,0 +1,41 @@ +Source: jamulus +Section: sound +Priority: optional +Maintainer: "corrados" +Build-Depends: + debhelper (>= 9), + libjack-jackd2-dev, + qtbase5-dev, + qttools5-dev-tools, +Standards-Version: é&%JAMVERSION%&è +Homepage: https://jamulus.io +Vcs-Git: git://github.com/corrados/jamulus.git +Vcs-Browser: https://github.com/corrados/jamulus + +Package: jamulus +Architecture: any +Depends: libc6 (>= 2.17), libgcc1 (>= 1:3.0), libjack-jackd2-0 (>= 1.9.5~dfsg-14) | libjack-0.116, libqt5core5a (>= 5.5.0), libqt5gui5 (>= 5.0.2) | libqt5gui5-gles (>= 5.0.2), libqt5network5 (>= 5.0.2), libqt5widgets5 (>= 5.2.0), libqt5xml5 (>= 5.0.2), libstdc++6 (>= 5.2) +Description: Low latency Audio Server/Client + The Jamulus software enables musicians to perform real-time jam sessions over + the internet. There is one server running the Jamulus server software which + collects the audio data from each Jamulus client, mixes the audio data and + sends the mix back to each client. + . + It runs on Windows / macOS / Linux. + +Package: jamulus-headless +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + adduser, +Description: Low latency Audio Server (headless) + The Jamulus software enables musicians to perform real-time jam sessions over + the internet. There is one server running the Jamulus server software which + collects the audio data from each Jamulus client, mixes the audio data and + sends the mix back to each client. + . + It runs on Windows / macOS / Linux. + . + This package contains a Jamulus binary built for headless operation + (without GUI library dependencies) and a jamulus-headless systemd service. diff --git a/distributions/build-debian-package-auto.sh b/distributions/build-debian-package-auto.sh new file mode 100755 index 0000000000..f27b247362 --- /dev/null +++ b/distributions/build-debian-package-auto.sh @@ -0,0 +1,47 @@ +#!/bin/sh -e + +# set armhf +#sudo dpkg --add-architecture armhf + +echo "Update system..." +sudo apt-get -qq update +sudo apt-get -qq -y upgrade +echo "Install dependencies..." + +sudo apt-get -qq -y install devscripts build-essential \ + debhelper libjack-jackd2-dev qtbase5-dev qttools5-dev-tools # gcc-arm-linux-gnueabihf + +cp -r debian .. +cd .. + +# get the jamulus version from pro file +VERSION=$(cat Jamulus.pro | grep -oP 'VERSION = \K\w[^\s\\]*') + +# patch changelog (with hack) + +DATE=$(date "+%a, %d %B %Y %T" ) +echo "jamulus (${VERSION}-0) UNRELEASED; urgency=medium" > debian/changelog +echo "" >> debian/changelog +echo " * See GitHub releases for changelog" >> debian/changelog +echo "" >> debian/changelog +echo " -- GitHub Actions ${DATE} +0" >> debian/changelog +echo "" >> debian/changelog +cat distributions/debian/changelog >> debian/changelog + +# patch the control file +# cp the modified control file here + +cp distributions/autobuilddeb/control debian/control + +echo "${VERSION} building..." + +sed -i "s/é&%JAMVERSION%&è/${VERSION}/g" debian/control +debuild -b -us -uc + +#echo "Build armhf" + +#debuild -b -us -uc -aarmhf +# copy for auto release +cp ../*.deb ./ + +sudo dpkg -i *.deb